如何根据元组的值排序列表

时间:2013-04-29 13:37:22

标签: python list

从一些元组列表开始。

a = [(10,10),(20,20)]
b = [(15,15),(25,25)]

我们可以使用哪种列表理解来创建新列表,a, b中的项目按大小排列?

c = [(10,10),(15,15),(20,20),(25,25)]

5 个答案:

答案 0 :(得分:10)

你不需要理解你可以这样做:

c = a + b
c.sort()
>> [(10, 10), (15, 15), (20, 20), (25, 25)]

甚至更短:

c = sorted(a + b)
>> [(10, 10), (15, 15), (20, 20), (25, 25)]

答案 1 :(得分:5)

如果两个列表都已按排序顺序...

c = list(heapq.merge(a, b))

,否则

c = sorted(itertools.chain(a, b))

答案 2 :(得分:4)

为什么列表理解?我不知道你的“大小”是什么意思,所以我猜猜区域。

c = sorted(a+b, key=lambda x: x[0]*x[1])

答案 3 :(得分:2)

from itertools import chain

a = [(10,10),(20,20)]
b = [(15,15),(25,25)]
sorted(chain(a, b))
# [(10, 10), (15, 15), (20, 20), (25, 25)]

答案 4 :(得分:1)

您应该阅读Sorting HOWTO。特别是,关键功能部分可能是相关的,具体取决于您如何定义“尺寸”。