Python 将两个列表格式化为一个字典
我正在为我的计算机科学课编写一个刽子手游戏,我正在尝试创建一个字典,其中每个单词都有一个给定的字符,并用一个0来表示它是否被猜测Python 将两个列表格式化为一个字典,python,python-3.x,Python,Python 3.x,我正在为我的计算机科学课编写一个刽子手游戏,我正在尝试创建一个字典,其中每个单词都有一个给定的字符,并用一个0来表示它是否被猜测 gamestart = 0 guesses = 5 gamewin = 0 while gamestart == 0: word = input("Welcome to hangman!" + "\nEnter a word: ") if word.find(" ") > -1: print("\nSorry Please use
gamestart = 0
guesses = 5
gamewin = 0
while gamestart == 0:
word = input("Welcome to hangman!" + "\nEnter a word: ")
if word.find(" ") > -1:
print("\nSorry Please use one word only!\n")
elif word.find(" ") == -1:
gamestart = 1
for i in range(len(word)):
wordspacing = [0] * i
wordstore = list(word)
wordstore = dict(zip(wordspacing, wordstore))
print(wordstore)
但是,当我尝试将我拥有的两个列表放在一起时,我得到了输出:
Welcome to hangman!
Enter a word: word
{0: 'r'}
有人能找出发生这种情况的原因吗。我还想就效率方面提出一点批评。问题是,您正在将
0
字典编成字母,每个键只能有一个值
试着只使用字典
wordstore = {letter: 0 for letter in word}
要使用您的方法实现所需的输出,您需要切换压缩对象的顺序
wordstore = dict(zip(wordstore, wordspacing))
同样对于字间距,您不希望连续地为字间距
赋值,而且您只会得到[0,0,0]
,而不是[0,0,0]
,因为i的最后一个值是3而不是4。因此,请遵循以下步骤
wordspacing = [0] * len(word)