list - python 如何删除列表元素

我试图制作一个小程序,将字母表的字母混乱( 简单的术语)

我曾尝试使用 list.pop() 或者 list.remove()之类的东西,但它们没有用


import random



def rand_let():


 i = 26


 alphabet = str('')


 for a in range(1, 26):


 key = ['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']


 print(len(key))


 print(key)


 letter = random.randint(1, i)


 print(key[letter])


 letters = key[letter]


 alphabet += str(letters)


 key.remove(letter)


 i -= 1



rand_let()



我想让它混淆字母表,但是它的方式会让字母重复( 我不想重复)

时间:

来自 randomshuffle 函数将节省你许多行,并且你正在寻找的内容如下:


import random



alphabet = ['A', 'B', 'C']


random.shuffle(alphabet)



print(alphabet)


#Ex: ['C', 'A', 'B']



您获得重复的原因是,尽管您有从密钥列表中删除字母的代码,但声明密钥列表的行也在循环内。 尝试移动线


key = ['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']



在for循环。或者其他答案中,使用库为你执行这里操作。


import random


import string


alphabet = [letter for letter in string.ascii_uppercase]


random.shuffle(alphabet)


print(alphabet)



这将只是对列表进行洗牌,然后为for循环的每次迭代逐个打印列表的元素。


import random 



key = ['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']



random.shuffle(key)



def choice(x):



 for letter in key:



 print()



choice(key)



...