我想使用像[(1,22,1),(5,1,8),(8,3,4),(7,5,6)]
这样的列表来过滤[1,7]
之类的元组列表,最终会得到结果[(1,22,1),(5,1,8),(7,5,6)]
;由于(8,3,4)
没有1
或7
,因此会被删除。
我可以为此编写一个综合功能。但是如果可能的话,我正在寻找一个简短的列表理解。
感谢。
答案 0 :(得分:8)
>>> tup_list = [(1,22,1),(5,1,8),(8,3,4),(7,5,6)]
>>> filter_list = [1,7]
>>> [tup for tup in tup_list if any(i in tup for i in filter_list)]
[(1, 22, 1), (5, 1, 8), (7, 5, 6)]
答案 1 :(得分:2)
试试这个:
items = [(1,22,1),(5,1,8),(8,3,4),(7,5,6)]
result = [ item for item in items if (set([1,7]) & set(item))]
>>> [(1, 22, 1), (5, 1, 8), (7, 5, 6)]