繁体   English   中英

元组对列表中的唯一单个值?

[英]Unique single values from list of tuple pairs?

从此数据结构中: [(1,2),(1,3),(1,4),(1,5)]我想获得唯一值,或[1,2,3,4,5] 这里有什么简单的解决方案?

您可以将set与列表理解一起使用:

lst = [(1,2),(1,3),(1,4),(1,5)]

set(j for i in lst for j in i)
# {1, 2, 3, 4, 5}

使用itertools模块中的chain.from_iterable 与嵌套列表理解相反,通常认为它是平铺2D迭代的惯用方式。 看到这个问题。

>>> from itertools import chain
>>> set(chain.from_iterable([(1,2),(1,3),(1,4),(1,5)]))
{1, 2, 3, 4, 5}

chain.from_iterable使列表变平,并且set仅保留唯一值。

要转换回列表,只需传递给list构造函数即可。

>>>list(set(chain.from_iterable([(1,2),(1,3),(1,4),(1,5)])))
[1, 2, 3, 4, 5]

在预期的输出中,唯一元素的顺序遵循外观的顺序。 一种方法是(使用外部库,但配方可在itertools -recipes部分中找到 ):

>>> from iteration_utilities import flatten, unique_everseen

>>> x = [(1,2),(1,3),(1,4),(1,5)]

>>> list(unique_everseen(flatten(x)))
[1, 2, 3, 4, 5]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM