2016-02-27 53 views
5

我有这样的结果:如何将一对值转换为排序的唯一数组?

[(196, 128), (196, 128), (196, 128), (128, 196), 
(196, 128), (128, 196), (128, 196), (196, 128), 
(128, 196), (128, 196)] 

,我想将它转化成这样的独特的价值观,以排序的顺序:

[128, 196] 

我敢肯定,有类似Python中的单线程技巧(包含电池),但我找不到一个。

回答

9

创建的所有元组的并集,然后进行排序的结果:

sorted(set().union(*input_list)) 

演示:

>>> input_list = [(196, 128), (196, 128), (196, 128), (128, 196), 
... (196, 128), (128, 196), (128, 196), (196, 128), 
... (128, 196), (128, 196)] 
>>> sorted(set().union(*input_list)) 
[128, 196] 
+0

完美!我只是没有得到构造函数“'set()'”单独 –

+0

@OlivierPons:它是一个捷径;它创建一个空的'set()'对象,然后可以用它来产生与所有元组的联合。另一种方法是将其中一个元组转换为一个集合并与该集合建立联合。 –

+0

好的,我可以请你给你的评论添加一个你刚刚解释的样本,我对你解释的工作代码非常好奇。非常感谢你 –