按升序排序嵌套元组

时间:2017-03-11 20:00:02

标签: python python-2.7 sorting tuples

我有一个类似于:

的嵌套元组
cluster = [(0,0), (0,2), (0,1), (2,1), (1,2), (2,0), (1,0), (0,1)]

我正在尝试按升序对值进行排序。不是第一个元素或第二个元素,而是升序。 结果应为

sorted_cluster = [(0, 0), (0, 2), (0, 1), (1, 2), (1, 2), (0, 2), (0, 1), (0, 1)]

在线查看,解决方案通常按第一个或第二个元素排序,但在这种情况下,我希望按升序排序。我能做到:

for i in range(len(cluster)):
    sorted_cluster.append(sorted(cluster[i])

然而,在这样做的时候,我在嵌套列表中返回一个嵌套列表,这不是我想要的。当我使用Counter时,它会识别出“不可用的列表”。

2 个答案:

答案 0 :(得分:1)

sorted 始终返回列表,因此只需将其转换为元组即可。如果您只是使用索引来访问列表中的元素,那么不要遍历集群的索引,迭代元素本身 Pythonic方式:

for c in cluster:
    sorted_cluster.append(tuple(sorted(c)))

答案 1 :(得分:1)

以下内容应该有效

cluster = [(0,0), (0,2), (0,1), (2,1), (1,2), (2,0), (1,0), (0,1)]
sorted_cluster = []
for i in range(len(cluster)):
    sorted_cluster.append(tuple(sorted(cluster[i])))

元组将解决您的问题,因为它会将列表转换为您正在寻找的元组。

相关问题