[解決済み] リスト内の各要素のペアに対する演算
2022-09-02 01:12:19
質問
Pythonを使って、リスト内のすべてのペアを比較したいのですが、可能でしょうか?
例えば
my_list = [1,2,3,4]
リストから2つの要素の組み合わせごとに操作(fooと呼ぶことにする)を行いたい。
最終的な結果は、以下のようになるはずです。
foo(1,1)
foo(1,2)
...
foo(4,3)
foo(4,4)
最初に考えたのは、手動でリストを2回反復することでしたが、それはあまりpythonicではないようです。
どのように解決するのですか?
チェックアウト
product()
の中にある
itertools
モジュールの中にあります。 これは、あなたが説明したとおりのことをします。
import itertools
my_list = [1,2,3,4]
for pair in itertools.product(my_list, repeat=2):
foo(*pair)
と同等である。
my_list = [1,2,3,4]
for x in my_list:
for y in my_list:
foo(x, y)
編集します。
よく似た機能として、以下の2つがあります。
permutations()
と
combinations()
. どのように異なるかを説明するために
product()
は、すべての重複を含む、要素のすべての可能なペアを生成します。
1,1 1,2 1,3 1,4
2,1 2,2 2,3 2,4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4
permutations()
は、各一意な要素の組の一意な順序をすべて生成し、そのために
x,x
の重複を排除する。
. 1,2 1,3 1,4
2,1 . 2,3 2,4
3,1 3,2 . 3,4
4,1 4,2 4,3 .
最後に
combinations()
は、辞書順のユニークな要素のペアをそれぞれ生成するだけです。
. 1,2 1,3 1,4
. . 2,3 2,4
. . . 3,4
. . . .
これらの3つの関数はすべてPython 2.6で導入されました。
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] 辞書から要素を削除する
-
[解決済み] タプルのリストを複数のリストに変換するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複