两个字符串,如:
import random
consonants = "bcdfghjklmnprstvwz"
vowels = "aeiou"
我希望在偶数索引处得到四个字母,在奇数索引处得到三个字母,如:
ejiguka / agewilu / isavonu (odd indexes(0,2,4,6),even indexes(1,3,5,7))
我试过这个功能,但它不起作用。
random_letter = random.choice(consonants[::2])
random_letter1 = random.choice(vowels[1::2])
random_together = random_letter + random_letter1
我有两个随机字母,例如b
和e
,但我想获得ejiguka
/ agewilu
之类的输出。
答案 0 :(得分:1)
您使用拼接进入了正确的轨道,但您没有正确应用它。
首先初始化一个空列表:
In [134]: x = [None] * 7
现在,使用random.sample
分配拼接,以检索唯一的随机字符子集:
In [135]: x[::2] = random.sample(vowels, 4)
...: x[1::2] = random.sample(consonants, 3)
加入并打印:
In [136]: ''.join(x)
Out[136]: 'ijepula'
答案 1 :(得分:0)
您可以创建一个字母列表并将它们连接在一起,如下所示:
str1 = ''.join(random.choice(consonants) if i % 2 else random.choice(vowels) for i in range(7))
您的代码只是从每个列表中获取一个字母,而且只能从切片项中获取。
cons = (random.choice(consonants) for i in range(3))
vwls = (random.choice(vowels) for i in range(4))
''.join(next(cons) if i % 2 else next(vwls) for i in range(7))