我的代码有什么问题吗?它应该运行大约500次。但是,一旦它再次追加,直到下一个elif条件得到满足后它会追加。
for x in range(lengthOfListedContent):
if listed_content[x][0] is books[0]:
notes[0].append(listed_content[x][2])
print(x)
elif listed_content[x][0] is books[1]:
notes[1].append(listed_content[x][2])
print(x)
elif listed_content[x][0] is books[2]:
notes[2].append(listed_content[x][2])
print(x)
elif listed_content[x][0] is books[3]:
notes[3].append(listed_content[x][2])
print(x)
else:
print('fail')
这是我得到的输出:
0
1
fail
fail
5
fail
fail
fail
9
fail
fail
它应该在每次迭代时附加,但它只会在满足条件的第一次迭代时附加。我不知道为什么它只是跳过直到满足下一个elif条件。我已经盯着屏幕看了几个小时。
很抱歉,如果这一切都令人费解,我还是新的..
答案 0 :(得分:2)
在两个参数之间使用是比较它们的ID而不是它们的值。
is
测试身份,而不是平等
将is
的所有行更改为==
自:
if listed_content[x][0] is books[0]:
要:
if listed_content[x][0] == books[0]: