Python 3.5.3 KeyError:0从random.choice()返回

时间:2017-07-26 04:52:27

标签: python-3.5

这是我的代码:

fList = {7:7, 9:9}

def checkList():
    if not None in fList:
        print(fList)
        fL = random.choice(fList)
        ttt[fL] = computerLetter
        del fList[fL]
        print(fL)
        print(ttt)
        print(fList)

Python抛出了这个错误:

{9: 9, 7: 7}
Traceback (most recent call last):
  File "/home/jason/Desktop/Programming/Python3_5/TestCode.py", line 35,     in <module>
    checkList()
  File "/home/jason/Desktop/Programming/Python3_5/TestCode.py", line 22, in checkList
    fL = random.choice(fList)
  File "/usr/lib/python3.5/random.py", line 265, in choice
    return seq[i]
KeyError: 0

当字典中有移动键:值对时,这工作正常。我无法理解什么是错的。提前感谢您的时间和关注。

1 个答案:

答案 0 :(得分:0)

通过查看代码,您似乎希望random.choice从您的字典中选择一个密钥,因此您需要做的是:

random.choice(list(fList.keys()))
顺便说一句,我不认为你正在使用条件(if)。目前,这意味着只有当fList没有密钥None时才会执行它(即如果你的列表是fList = {7:7, 9:9, None:5}它不会执行)。我认为你的意思是if fList is not None,这意味着它只会在定义时执行