python-3.x - 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']
解决方案
采用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']
注意:在迭代对象时删除元素不是一个好习惯。
推荐阅读
- python - Python:使用二进制文件传输两个字节变量
- django - 如何在Django的`include`标签中将静态文件链接作为变量发送?
- python - 我制作了 django 应用程序,但无法在 GKE 中编排
- git - 删除本地不再存在的所有远程分支
- javascript - 如果你让一个函数异步并且什么都不改变会发生什么?
- r - 计算 R 中两个向量中重叠的实例
- python - Python 无法将列表转换为 DataFrame
- android - 无法访问 GoogleApi
- swift - Swift 5 线程 1:致命错误:索引超出范围
- python - 使用一种热编码映射标签列表