【发布时间】:2019-04-28 02:19:28
【问题描述】:
我有一个元组列表:
my_list = [(1,2),(2,3),(3,4),(4,5),(5,6),(7,8)]
以及我要排除的值列表,格式为:
reference_list = [(2,20),(3,46),(4,918)]
我要排除的值是这对中的第一个。 (20、46、918的含义并不重要)
所以我想返回一个不包含任何 2,3,4 值的元组列表。
预期结果:
[(5,6),(7,8)]
(因为所有其他都包含一个或多个值 2、3 或 4)
我尝试过的:
[p for p in my_list if p[0] not in [v[0] for v in reference_list] and p[1] not in [v[0] for v in reference_list]]
我正在检查该对的第一个或第二个值是否不在参考列表的列表 v[0] 中。
它确实有效,但我正在寻找一种更简洁/pythonic 的方式,如果有的话。理想情况下可扩展(不只是添加诸如 p[2] not in list 和 p[3] not in list and 之类的条件。
【问题讨论】: