这是我的代码:
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
当字典中有移动键:值对时,这工作正常。我无法理解什么是错的。提前感谢您的时间和关注。
答案 0 :(得分:0)
通过查看代码,您似乎希望random.choice
从您的字典中选择一个密钥,因此您需要做的是:
random.choice(list(fList.keys()))
顺便说一句,我不认为你正在使用条件(if
)。目前,这意味着只有当fList没有密钥None
时才会执行它(即如果你的列表是fList = {7:7, 9:9, None:5}
它不会执行)。我认为你的意思是if fList is not None
,这意味着它只会在定义时执行