【发布时间】:2018-08-11 20:50:03
【问题描述】:
有人可以解释一下我下面代码的最后 3 行中成员资格测试的行为,为什么它是 False? 为什么迭代器和可迭代对象的成员资格测试不同?
c = [1,2,3,4,5,6,7,8,9,10,11,12]
print(3 in c) # True
print(3 in c) # True
d = iter(c)
print(2 in d) # True
print(4 in d) # True
print(4 in d) # False ???
print(6 in d) # False ???
print(10 in d) # False ???
【问题讨论】:
-
第二次尝试查找 4 后,迭代器为空,因为它遍历所有值以查找 4。尝试在查找后将其转换为列表,看看你得到了什么,你应该获取
[]