在下一段代码中,当我试图向字典添加新键时,会收到一个KeyError。
def tournamentWinner(competitions, results):
record = {}
winner = None
for i in range(len(results)):
if results[i] == 0:
if record[competitions[i][1]] not in record:
record[competitions[i][1]] = 3
else:
record[competitions[i][1]] += 3
else:
if record[competitions[i][0]] not in record:
record[competitions[i][0]] = 3
else:
record[competitions[i][0]] += 3
for element in record:
if winner is None:
winner = element
if element > winner:
winner = elemnt
return winner
我得到这个密钥错误:
Exception Detected:
Traceback (most recent call last):
File "/tester/program.py", line 7, in tournamentWinner
if record[competitions[i][1]] not in record:
KeyError: 'C#'
您收到该错误是因为在使用if-else检查competitions[i][1]
密钥时,record
中不存在该密钥。
你可以使用dict.get
方法来解决这个问题:
如果其他:
if record[competitions[i][1]] not in record:
record[competitions[i][1]] = 3
else:
record[competitions[i][1]] += 3
你可以使用
record[competitions[i][1]] = record.get(competitions[i][1], 0) + 3