0

タプルのリストから始めます。

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

a, bアイテムがサイズ順に並べられた新しいリストを作成するために、どのリスト内包表記を使用できますか?

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

5 に答える 5

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)]
于 2013-04-29T13:39:37.590 に答える
5

両方のリストがすでにソートされている場合...

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

それ以外は

c = sorted(itertools.chain(a, b))
于 2013-04-29T13:43:56.057 に答える
4

なぜリスト内包表記なのか? 「サイズ」の意味がわからないので、面積を推測します。

c = sorted(a+b, key=lambda x: x[0]*x[1])
于 2013-04-29T13:42:05.057 に答える
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)]
于 2013-04-29T13:41:42.443 に答える
1

Sorting HOWTOを読むべきでしょう。特に、「サイズ」の定義方法によっては、重要な機能に関するセクションが関連する場合があります。

于 2013-04-29T13:41:20.787 に答える