【Python】リストから2つを取り出して一覧化

IT

記事の概要

  • やりたかったこと
    • リストから2つの要素を取り出す
    • 取り出した組み合わせを一覧表示する
    • 順不同
  • コードはPythonで書きました
  • 具体的には A, B, C, D, E が入っているリストから2つを取り出して、組み合わせを一覧表示することを考えた
  • 僕は愚かにも自分で実装しましたが、ライブラリがあるようです(^_^;)

サンプルコード

list_char = ["A", "B", "C", "D", "E"]
pick_list = []

for pick_1 in range(len(list_char)):
    for pick_2 in range(pick_1+1, len(list_char)):
        conb = [list_char[pick_1], list_char[pick_2]]
        pick_list.append(conb)

print(pick_list)

実行結果

[['A', 'B'], ['A', 'C'], ['A', 'D'], ['A', 'E'], ['B', 'C'], ['B', 'D'], ['B', 'E'], ['C', 'D'], ['C', 'E'], ['D', 'E']]

考え方

  • 要素を番号で管理する
  • 2つの繰り返し処理を使う
    ことを考えると

例えば繰り返し処理をi,jでループ変数を管理するとする。

A, B, C, D, E→1, 2, 3, 4, 5番目の要素と考えると

  • i=1の時 → j=2, 3, 4, 5
  • i=2の時 → j=3, 4, 5
  • i=3の時 → j=4, 5
  • i=4の時 → j=5

となれば良い

これを一般化すると
要素数が1~Nの時

  • i=x の時、j=x+1~N
  • iは1~N-1を取る

となれば良い

これより、コードに落とし込むとサンプルコードのようになり、
実際に一覧表示できることが確認できた。

コメント

タイトルとURLをコピーしました