从具有排除的元组元素创建列表

时间:2017-05-14 13:46:50

标签: python list tuples

我想从列表中的元组元素中列出项目列表,这些元素不属于其他列表,我知道每个元组都包含列表中的一个元素我不会#39 ; t希望它属于该列表中不属于的一个元素。例如,使用

tuples = [(2,1), (1,4), (1,7), (3,10), (4,3)]
exclude = [1, 3]

我希望创建列表

[2, 4, 7, 10]

这很容易在笨拙的for循环中完成,但似乎使用某些函数或列表理解更加pythonic方式。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

实际上没有理解这个问题。假设这可能是你想要的

>>>list(set([j for i in tuples for j in i if not j in exclude]))
[2, 4, 10, 7]

答案 1 :(得分:0)

您在示例中忘记了4,代码将返回:

>>>[num for tup in tuples for num in tup if num not in exclude]
[2, 4, 7, 10, 4]

答案 2 :(得分:0)

假设您的要求是将元组列表转换为列表,然后在列表中获取唯一元素,排除列表排除然后排序。

from itertools import chain
tuples_final = sorted(list(set(chain(*tuples))-set(exclude)))