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

2024-04-27 07:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有人能找出发生这种事的原因吗。我还想就效率问题提出一点批评


Tags: to游戏字典find字符单词word计算机科学
2条回答

问题是,您正在制作一个0到字母的字典,每个键只能有一个值

试着用字典来理解

wordstore = {letter: 0 for letter in word}

要使用您的方法实现所需的输出,您需要切换zipped对象的顺序

wordstore = dict(zip(wordstore, wordspacing))

同样对于字间距,您不希望连续地将值赋给wordspacing,而且您只会以[0,0,0]而不是[0,0,0,0]结束,因为i的最后一个值是3而不是4

wordspacing = [0] * len(word)

相关问题 更多 >