首页 > 解决方案 > for循环不会循环到下一个元素python

问题描述

我正在尝试遍历列表。但它正在获得第一个元素。它没有得到第二个元素。我无法弄清楚我做错了什么。

filte = ['fingerprint','cipher']
dupe = ['cipher','extract']

for val in filte:
    print(val)
    if val in dupe:
        dupe.remove(val)
    else:
        filte.remove(val)

print("filter",filte)
print("dupe",dupe)

我得到的输出:

fingerprint
filter ['cipher']
dupe ['cipher', 'extract']

所需输出:

fingerprint
cipher
filter ['cipher']
dupe [ 'extract']

标签: python-3.xlistfor-loop

解决方案


采用set

前任:

filte = ['fingerprint','cipher']
dupe = ['cipher','extract']

print(list(set(filte) - set(dupe)))  #OR list(set(filte).difference(set(dupe)))
print(list(set(dupe) - set(filte)))

输出:

['fingerprint']
['extract']

注意:在迭代对象时删除元素不是一个好习惯。


推荐阅读