Lou*_*s93 2 python iterator loops list
我想迭代一个列表,并删除多次计数的项目,因此它们不会被for循环重复打印.
但是,列表中只出现一次的某些项目似乎也受此影响,我无法弄清楚原因.
任何投入将不胜感激.
示例输出:
listy = [2,2,1,3,4,2,1,2,3,4,5]
for i in listy:
if listy.count(i)>1:
print i, listy.count(i)
while i in listy: listy.remove(i)
else:
print i, listy.count(i)
Run Code Online (Sandbox Code Playgroud)
输出:
2 4
3 2
1 2
Run Code Online (Sandbox Code Playgroud)
因此完全忽略了4和5.
迭代时不应修改列表.这应该工作:
listy = [2,2,1,3,4,2,1,2,3,4,5]
found = set()
for i in listy:
if not i in found:
print i, listy.count(i)
found.add(i)
Run Code Online (Sandbox Code Playgroud)
结果是:
2 4
1 2
3 2
4 2
5 1
Run Code Online (Sandbox Code Playgroud)