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

如何在python中从字符串生成随机值?,python,random,Python,Random,我有一个字符串'ABCDEF',我希望每次运行程序时随机生成4个唯一的字符 结果应该是: BDAF EDCB CAFE ... 我可以使用random.sample,但它需要使用列表,有没有办法使用字符串达到相同的结果?您确实可以使用random.sample;它将为您提供一个列表,但很容易将结果列表合并为字符串: result = ''.join(random.sample("ABCDEF", 4)) import random c = "ABCDEF" ''.join(random

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

结果应该是:

BDAF

EDCB

CAFE

...

我可以使用
random.sample
,但它需要使用
列表
,有没有办法使用
字符串
达到相同的结果?

您确实可以使用
random.sample
;它将为您提供一个列表,但很容易将结果列表合并为字符串:

result = ''.join(random.sample("ABCDEF", 4))
import random
c = "ABCDEF"
''.join(random.sample(c, 4))
可以使用“”,然后将结果列表与“”连接,以创建字符串:

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

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

您可以使用Python模块提供的函数。 用于从字符串中提取一组随机字符,然后执行以下操作:

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

  • “经典”
    for
    方法将
    N=4
    字母中的每个字母追加到同一字符串,以及
    随机
    模块的
    选择
    方法,该方法从其参数中选择一个元素

  • 使用
    join
    方法
    一次性添加由
    random
    模块的
    choices
    方法生成的元素。
    choices
    方法用途广泛,可以与多个参数()一起使用

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


  • 方法1

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

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

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

    random.sample
    可以很好地处理字符串。您也可以轻松地将它返回的列表转换为字符串。这个答案的可能重复似乎很正常。但如果你能补充一些解释,那就太好了。这将提高答案的质量。OP希望从字符串“ABCDEF”中选择4个唯一的字符。你的代码没有这样做。我已经相应地修改了我的答案