首次使用Python编码。我习惯了PHP和javascript。
for CDuser6Minutes in CDusers6Minutes[minutetocheckpre]:
if CDuser6Minutes in CDusers:
if AltsPre[CDuser6Minutes]:
AltsPre[CDuser6Minutes] = AltsPre[CDuser6Minutes]+1
else:
AltsPre[CDuser6Minutes] = 1
CDuser6Minutes是字符串。在这种情况下:“Mingodalia”。我得到的错误是:
File "...app.py", line 72, in <module>
if AltsPre[CDuser6Minutes]:
KeyError: 'Mingodalia'
答案 0 :(得分:1)
您可以通过将CDuser6Minutes in AltsPre
添加到第二个if语句来修复代码。
现在它的作用是首先检查词典中是否存在该键,然后检查您的条件AltsPre[CDuser6Minutes]
,我假设您使用的是 truthy 条件。
所以现在一旦执行达到条件CDuser6Minutes in AltsPre
,它将在那种情况下短路而不执行AltsPre[CDuser6Minutes]
,直接执行else语句。
因此您的修改后的代码将如下所示 -
for CDuser6Minutes in CDusers6Minutes[minutetocheckpre]:
if CDuser6Minutes in CDusers:
if CDuser6Minutes in AltsPre and AltsPre[CDuser6Minutes]:
AltsPre[CDuser6Minutes] = AltsPre[CDuser6Minutes]+1
else:
AltsPre[CDuser6Minutes] = 1
您现在得到的错误是因为您的代码假定明信片中存在 AltsPre 键,因为AltsPre[CDuser6Minutes]
是对词典的查找 AltsPre 强>
请在评论中告诉我任何进一步的澄清。