我正在尝试编写一个程序,您可以在其中输入元音或辅音 8 次,然后显示您选择的字母列表。有没有办法对其进行编程,使同一个字母不会出现两次,例如,如果你选择元音并得到字母 a,那么字母 a 就不能再次随机选择? 这是目前的程序:
lt = 0
letters = []
while lt<8:
letter = raw_input("Please enter v for a Vowel or c for a Consonant: ")
if letter == "c":
letters.append(random.choice(consonant)),
lt = lt + 1
elif letter == "v":
letters.append(random.choice(vowel)),
lt = lt + 1
else:
print("Please enter only v or c")
print ("letters:")
print letters
最佳答案
创建所有辅音和所有元音的列表,随机打乱
它们,然后一次取一个元素:
import random
con = list('bcdfghjklmnpqrstvwxyz') # in some languages "y" is a vowel
vow = list('aeiou')
random.shuffle(con)
random.shuffle(vow)
# con is now: ['p', 'c', 'j', 'b', 'q', 'm', 'r', 'n', 'y', 'w', 'f', 'x', 't', 'g', 'l', 'd', 'k', 'h', 'z', 'v', 's'] or similar
# vow is now: ['e', 'u', 'i', 'a', 'o'] or similar
letters = []
while len(letters) < 8:
letter = raw_input("Please enter v for a Vowel or c for a Consonant: ")
if letter == "c":
if con:
letters.append(con.pop())
else:
print("No more consonnants left")
elif letter == "v":
if vow:
letters.append(vow.pop())
else:
print("No more vowels left")
else:
print("Please enter only v or c")
关于python - 如何阻止同一个字母在列表中出现两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803074/