Python 将两个列表格式化为一个字典

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

我正在为我的计算机科学课编写一个刽子手游戏,我正在尝试创建一个字典,其中每个单词都有一个给定的字符,并用一个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 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)