![](/img/trans.png)
[英]Filter List of Tuples to Exclude from Another List of Tuples which Contains
[英]How to filter a list of tuples with another list of items
我有两个列表:一个列表包含作为参考号的项目,第二个列表包含元组,其中一些包含第一个列表的参考号。
我的参考编号列表如下所示:
list1 = ['0101', '0202', '0303']
我的元组列表如下:
list2 = [
('8578', 'aaa', 'bbb', 'ccc'),
('0101', 'ddd', 'eee', 'fff'),
('9743', 'ggg', 'hhh', 'iii'),
('2943', 'jjj', 'kkk', 'lll'),
('0202', 'mmm', 'nnn', 'ooo'),
('7293', 'ppp', 'qqq', 'rrr'),
('0303', 'sss', 'ttt', 'uuu'),
]
我想根据元组内第一个列表中是否存在引用号来过滤上面的第二个列表:如果引用号包含在元组中,则脚本会将其从列表中删除。
这是预期的结果:
newlist2 = [
('8578', 'aaa', 'bbb', 'ccc'),
('9743', 'ggg', 'hhh', 'iii'),
('2943', 'jjj', 'kkk', 'lll'),
('7293', 'ppp', 'qqq', 'rrr'),
]
我怎样才能做到这一点?
list1 = ['0101', '0202', '0303']
list2 = [
('8578', 'aaa', 'bbb', 'ccc'),
('0101', 'ddd', 'eee', 'fff'),
('9743', 'ggg', 'hhh', 'iii'),
('2943', 'jjj', 'kkk', 'lll'),
('0202', 'mmm', 'nnn', 'ooo'),
('7293', 'ppp', 'qqq', 'rrr'),
('0303', 'sss', 'ttt', 'uuu'),
]
filtered = []
for i in list2:
if i[0] not in list1:
filtered.append(i)
print(filtered)
output
[('8578', 'aaa', 'bbb', 'ccc'),
('9743', 'ggg', 'hhh', 'iii'),
('2943', 'jjj', 'kkk', 'lll'),
('7293', 'ppp', 'qqq', 'rrr')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.