当前位置:  开发笔记 > 编程语言 > 正文

排序元组列表不起作用

如何解决《排序元组列表不起作用》经验,为你挑选了1个好方法。

这是我在这里的第一个问题=):我的问题是标题中所述的内容.我想简单地用2个元素对元组列表进行排序.它应该与排序一起工作,但它仍然返回未排序的List,...它似乎什么都不做.输入:

#"L =[(0, 1), (4, 6), (5, 7), (0, 6), (0, 4), (2, 5)]" Its an example.
for line in stdin:
 L = [int(i) for i in line.split()]
 n = L[0]
 V = [i for i in range(n)]
 edgelist = L[1:]
 EDGE = [(edgelist[i],edgelist[i+1]) for i in range(0,len(edgelist)-1,2) ]
 mK = missingKnots(edgelist)
 EDGE = sorted(EDGE)
 EDGE = list(set(EDGE))

输出:

[(0, 1), (4, 6), (5, 7), (0, 6), (0, 4), (2, 5)]

应该:

[(0, 1), (0, 4), (0, 6), (2, 5), (4, 6), (5, 7)]

未分类=(.感谢阅读!



1> Mark Tolonen..:

排序并返回新列表:

>>> L =[(0, 1), (4, 6), (5, 7), (0, 6), (0, 4), (2, 5)]
>>> sorted(L)
[(0, 1), (0, 4), (0, 6), (2, 5), (4, 6), (5, 7)]

排序到位:

>>> L.sort()
>>> L
[(0, 1), (0, 4), (0, 6), (2, 5), (4, 6), (5, 7)]

之后不要做set().集合是无序的.

>>> list(set(L))
[(0, 1), (4, 6), (5, 7), (0, 6), (0, 4), (2, 5)] # now it's messed up again.

理想情况下,要排序和删除重复项:

>>> L = [(0, 1), (4, 6), (5, 7), (0, 6), (0, 4), (2, 5), (0, 1)]
>>> sorted(set(L))
[(0, 1), (0, 4), (0, 6), (2, 5), (4, 6), (5, 7)]

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有