无重复的随机字母表选择器(python) 随机导入 字母表=['a',b',c',d',e',f',g',h',i',j',k',l',m',n',o',p',q',r',s',t',u',v',w',x',y',z'] 迭代次数=1 运行=真 def random_picker(): 随机选择=随机选择(字母表) 迭代次数=+1 打印(随机选择) 运行时==True: 如果迭代
您的程序将继续循环,直到返回26个字母。由于您希望在每次迭代中使用不同的字母,因此使用无重复的随机字母表选择器(python) 随机导入 字母表=['a',b',c',d',e',f',g',h',i',j',k',l',m',n',o',p',q',r',s',t',u',v',w',x',y',z'] 迭代次数=1 运行=真 def random_picker(): 随机选择=随机选择(字母表) 迭代次数=+1 打印(随机选择) 运行时==True: 如果迭代,python,random,Python,Random,您的程序将继续循环,直到返回26个字母。由于您希望在每次迭代中使用不同的字母,因此使用字母表数组并在其上循环可能更容易,而不是在每次迭代中尝试选择随机字母: random.shuffle(字母表) Paul M.EDIT-以下是一个示例,说明如何使用它来实现预期效果: import random alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r
字母表
数组并在其上循环可能更容易,而不是在每次迭代中尝试选择随机字母:
random.shuffle(字母表)
Paul M.EDIT-以下是一个示例,说明如何使用它来实现预期效果:
import random
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
iterations = 1
running = True
def random_picker():
random_choice = random.choice(alphabet)
iterations =+ 1
print(random_choice)
while running == True:
if iterations <=26:
random_picker()
else:
running == False
输出:
from string import ascii_lowercase
from random import shuffle
alphabet = list(ascii_lowercase)
shuffle(alphabet)
for char in alphabet:
print(char)
那我怎么才能阻止重复的数字形成呢?我唯一想到的是pop()函数一次从列表中删除一个字母。@Mureinik
random.shuffle
修改顺序,并返回None
@Oxyzy使用的是random.shuffle
,这正是防止重复发生的第一步。想想看:如果我有一副牌,然后洗牌,这些牌的顺序将是随机的——但是如果我一直从牌堆的顶部抽牌,我将永远不会得到同一张牌两次。@PaulM。阿格,接得好。不知道我在想什么…@PaulM。那么我如何使它只迭代26次呢?还是应用于变量?@oxyzy我编辑了Mureinik的帖子,因为用基本相同的解决方案发布另一个答案是没有意义的。看一看。
j
m
z
w
k
y
d
f
l
c
u
b
t
s
e
p
x
g
a
r
n
h
i
q
o
v
>>>