【问题标题】:keyError using while loop dictionary iteration使用while循环字典迭代的keyError
【发布时间】:2020-03-04 21:22:16
【问题描述】:

我正在尝试迭代几个输入,然后填充字典,但是当我输入最后一个键时,每次在最后一个键时我都会收到这个 keyError,它会抛出这个错误。

 # Get user input and define our roster
roaster = {}
while True:
    position = input('position: ')
    player = input('player: ')
    roaster[position] = [player]
    roaster.update()
    if len(roaster) == 1:
        break
print(f'Your starting {len(roaster)} for the upcoming basketball season')

print(f'\t\t{roaster[player]}:\t\t{roaster[position]}')

错误:

Traceback (most recent call last):
File "/home/Basketball_Roaster_App/basketball_ball_roaster.py", line 16, in <module>
print(f'\t\t{roaster[player]}:\t\t{roaster[position]}')
KeyError: 'mike'

【问题讨论】:

  • 你提供了什么输入来得到这个错误?
  • 顺便说一下,roster 的拼写没有'a'
  • update 函数是什么?此外,为什么总是只允许一名玩家——break 确保了这一点。它是一个非常小的烘焙机吗?
  • 我正在提供字符串

标签: python dictionary while-loop


【解决方案1】:

你的问题是roaster[player]

你作为玩家的 las 输入是 mike,所以 dict 是 roaster = {position: 'mike'}

只能通过key访问dict,所以需要使用position来访问。 Python 正在尝试在键中查找“mike”,但找不到。

你应该做的是:

for key in roaster:
    print(roaster[key]: key)

【讨论】:

    【解决方案2】:

    你可以试试这个

    roaster={位置:播放器}

    打印烘焙器.items()

    【讨论】:

      【解决方案3】:

      您的roaster 使用位置作为键,而不是玩家

      【讨论】:

        猜你喜欢
        • 2013-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 2020-04-08
        • 1970-01-01
        • 2020-04-07
        相关资源
        最近更新 更多