[英]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 多种):
“经典” for
方法追加的每个人N=4
的字母相同的字符串和choice
所述的方法random
模块其参数中拾取一个元件,
使用join
method
一次性添加random
模块的choices
方法生成的元素。 choices
方法非常通用,可以与多个参数一起使用(官方文档),
使用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.