ホームページ >バックエンド開発 >Python チュートリアル >Python で整列を維持しながら複数のリストを並べ替えるにはどうすればよいですか?

Python で整列を維持しながら複数のリストを並べ替えるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-28 17:10:17592ブラウズ

How Can I Sort Multiple Lists in Python While Maintaining Alignment?

配置を維持しながらリストを並べ替える

複数の並列リストを操作する場合、他のリストの要素の対応する順序を維持しながら 1 つのリストを並べ替える必要がある場合があります。これを達成するために、2 つの古典的なアプローチを紹介します。

「装飾、並べ替え、装飾解除」イディオム

この手法は、複数のリストの要素を結合する Python の組み込み zip 関数を使用してタスクを簡素化します。タプルへ:

list1 = [3, 2, 4, 1, 1]
list2 = ['three', 'two', 'four', 'one', 'one2']
list1, list2 = zip(*sorted(zip(list1, list2)))

最初の要素 (list1) でタプルをソートした後、順序は両方のリストに適用されます。

インプレース並べ替え

速度を向上させるために、インプレース並べ替えアプローチを使用できます。

tups = zip(list1, list2)
tups.sort()
result1, result2 = zip(*tups)

通常、このアプローチの方が優れたパフォーマンスを発揮します。小さなリストの場合は 1 行バージョンですが、Python の最適化された zip により大きなリストの場合と同等になります。

代替アプローチ

  1. インデックスの並べ替え: 2 番目のリストの要素の比較が非効率的であるかサポートされていない場合は、代わりにインデックスを並べ替え、それらを使用してルーチンを並べ替えます。リスト。
  2. キー機能: 2 番目のリストの要素を比較せずに、最初のリストに基づいて並べ替えるキー関数を定義します:
list1 = [3, 2, 4, 1, 1]
list2 = [num * num for num in list1]
result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))

以上がPython で整列を維持しながら複数のリストを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。