我有元组列表
a=[('H40T','H04H'), ('Z40A','H04T'), ('M90K','H04B'), ('H40H','H04B'), ('H40A','A04B'), ('A40T','Q04Q'), ('H40T','H04H'), ('Z40A','L04M'), ('A03C','H04T'), ('H40T','H04B'), ('H40A','A04B'), ('H40T','Q04C')]
我要保留元组,它们至少有一个元素desire=['H04B','H04T','H04H']
我尝试使用这段代码,但它没有删除没有提到的元素的所有元组。你知道吗
for counter in a:
if ('H04B' not in counter and 'H04T' not in counter and 'H04H' not in counter):
a.remove(counter)
问题是元组没有它们。此外,我还尝试any()
查找不需要的元素。你知道吗
for counter in a:
if any(x in counter for x in desire):
a.remove(counter)
使用具有设置交集的列表comp,并将元组保留在至少与所需值存在交集的位置,例如:
给你:
您可以使用列表理解和
any
来进行过滤例如:
输出为:
因为当你遍历一个列表并删除一个元素时,它会跳过下一个元素,因为它会遍历已删除元素的更新列表
一种方法可能是使用列表的副本,或者在之后删除元素,就像上面的代码或集合是解决这个问题的好方法一样。你知道吗
相关问题 更多 >
编程相关推荐