[英]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.