我有一个类似于:
的嵌套元组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
时,它会识别出“不可用的列表”。
答案 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])))
元组将解决您的问题,因为它会将列表转换为您正在寻找的元组。