組み込みの sort() 関数を使用する Python コードのカスタム ソートを作成したいのですが、2 つの値に基づいてリストをソートできます。並べ替えたいリストは、それぞれ 2 つの整数を含むタプルのリストとして構造化されています。私がソートしたいのは、最初の整数のそれぞれに基づいてタプルのリストをソートすることですが、最初の 2 つの整数が結合されている場合、それは 2 番目の整数を参照します。これは一意であるため、同じではありません。組み込みの sort() 関数の速度を使用したいのですが、この方法で並べ替えることができます。すべてのヘルプは大歓迎です!
質問する
143 次
2 に答える
2
組み込みsorted
はこれを行います。
>>> l = [(1, 1), (1, 2), (2, 5), (2, 4)]
>>> sorted(l)
[(1, 1), (1, 2), (2, 4), (2, 5)]
sort()
との違いは、指定されたリスト(したがって、その構造を共有している他のすべてのリスト)sorted()
を変更し、イテラブルを受け入れて、まったく新しいリスト オブジェクトを返すことです。sort()
sorted()
例えば:
>>> a = list("alphabet")
>>> a
['a', 'l', 'p', 'h', 'a', 'b', 'e', 't']
>>> b = a
>>> b
['a', 'l', 'p', 'h', 'a', 'b', 'e', 't']
>>> b.sort()
>>> #this has modified the shared structure
>>> a
['a', 'a', 'b', 'e', 'h', 'l', 'p', 't']
とは対照的にsorted()
>>> c = list("alphabet")
>>> d = c
>>> sorted(d)
['a', 'a', 'b', 'e', 'h', 'l', 'p', 't']
>>> c
['a', 'l', 'p', 'h', 'a', 'b', 'e', 't']
sorted()
より安全です。
于 2013-01-24T02:46:45.883 に答える
0
list.sort()メソッドの正確な動作について説明したので、リストにタプルを入れたら、引数なしでリストのsortメソッド(l.sort)を呼び出すだけで、目的の順序になります。
より複雑な並べ替えが必要な場合は、「キー関数」を名前付き引数keyとして渡すことができます。この関数はリストの各要素に適用されてソートキーが生成され、次に要素がソートキーの順序でソートされます。
ソートされた組み込み関数は、リストのソートされたコピーが必要な場合に便利です。コピーを作成してから、そのソートメソッドを呼び出す手間を省くことができます。
于 2013-01-24T03:01:52.653 に答える