繁体   English   中英

如何从python中的字符串生成随机值?

[英]How to generate random values from a string in python?

我有一个字符串'ABCDEF' ,我希望每次运行程序时随机生成 4 个唯一字符。

结果应该是这样的:

BDAF

EDCB

CAFE

...

我可以使用random.sample但它需要使用一个list来代替,有没有办法使用string实现相同的结果?

您可以使用 Python 的random模块提供的函数。 使用random.sample从字符串中提取一组随机字符,然后join它们:

import random
source = "ABCDEFG"
result = "".join(random.sample(source, 4))

你确实可以使用random.sample 它会给你一个列表,但很容易将结果列表加入一个字符串:

result = ''.join(random.sample("ABCDEF", 4))

您可以使用random执行此操作,然后使用 '' 加入结果列表以创建字符串:

import random
c = "ABCDEF"
''.join(random.sample(c, 4))

对于输入,您可以使用字符串,因为在 Python 中字符串也是一个列表(字符列表)

有 3 种解决方案(可能还有 100 多种):

  1. “经典” for方法追加的每个人N=4的字母相同的字符串和choice所述的方法random模块其参数中拾取一个元件,

  2. 使用join method一次性添加random模块的choices方法生成的元素。 choices方法非常通用,可以与多个参数一起使用(官方文档),

  3. 使用join method一次性添加random模块的sample方法生成的元素。 sample(set,num)方法在set随机选取num元素。


import random
N=4
source_string = 'ABCDEF

方法一

random_string_1=""
for it in range(0,N):
    random_string_1 = random_string_1 + random.choice(source_string)

方法二

random_string_2 = "".join(random.choices(source_string, weights=None, 
cum_weights=None, k=N))

方法三

random_string_3 = "".join(random.sample(source_string, N))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM