从一些元组列表开始。
a = [(10,10),(20,20)]
b = [(15,15),(25,25)]
我们可以使用哪种列表理解来创建新列表,a, b
中的项目按大小排列?
c = [(10,10),(15,15),(20,20),(25,25)]
答案 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。特别是,关键功能部分可能是相关的,具体取决于您如何定义“尺寸”。