使用列表的 strings/elements 给出 random.sample 的范围

Giving a range for random.sample with strings/elements of a list

我想创建一个包含 3-7 个随机字母名称的变量。 (名字不对也没关系)。我知道如何让它包含 3 个字母,但我不知道如何处理包含字母的范围 (string/list)。到目前为止,这是我的代码:

import random
ABC = ['A', 'Á', 'B', 'C'... just imagine every single letter of the Hungarian alphabet as a list]
name = random.sample(ABC, 3)

我试过这样做:

name = random.sample(ABC, 3) or random.sample(ABC, 4)

但当然没有用。你们能帮帮我吗? :)

现在明白你的问题了:

import random
ABC = ['A', 'Á', 'B', 'C'...]
letter_random = random.randint(3,7)
word = random.sample(ABC, letter_random)
print(''.join(word))

random.sample(ABC, 3) returns 一个列表。如下

>>> random.sample(ABC, 3)
['q', 'h', 'x']

您可以使用 join 方法将其转换为字符串

>>> a = random.sample(ABC, 3)
>>> a 
['q', 'h', 'x']
>>>''.join(a)
'qhx'

编辑:您甚至可以使用随机模块randint选择3到7之间的数字

>>> a = random.sample(ABC, random.randint(3,7))
>>> ''.join(a)
'bvt'
>>> b = random.sample(ABC, random.randint(3,7))
>>> ''.join(b)
'fycu'