Python
 Computer >> コンピューター >  >> プログラミング >> Python

同じ最初の値を持つリスト内のPythonグループタプル


このチュートリアルでは、すべてのタプルを同じ最初の要素でグループ化するプログラムを作成します。それを明確に理解するために例を見てみましょう。

入力

[(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]

出力

[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]

問題を解決するための手順を見てみましょう。

  • リストを初期化します。
  • 空の辞書を初期化します。
  • タプルのリストを繰り返し処理します。
  • タプルの最初の要素が辞書のキーとして存在するかどうかを確認します。
  • 存在する場合は、最初のタプル値なしで現在のタプル値を前の値に追加します。
  • 存在しない場合は、最初の要素を含む現在のタプル要素でキーを初期化します。
  • dictの値をリストとして出力します。

# initializing the list
tuples = [(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]
# empty dict
result = {}
# iterating over the tuples
for sub_tuple in tuples:
   # checking the first element of the tuple in the result
   if sub_tuple[0] in result:
      # adding the current tuple values without first one
      result[sub_tuple[0]] = (*result[sub_tuple[0]], *sub_tuple[1:])
   else:
      # adding the tuple
      result[sub_tuple[0]] = sub_tuple
# printing the result in list
print(list(result.values()))

出力

上記のコードを実行すると、次の結果が得られます。

[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]

結論

さまざまな方法で問題の解決を試みることができます。また、チュートリアルに疑問がある場合は、コメントセクションでそれらについて言及してください。


  1. Pythonの値としてインデックスを持つ辞書

    この記事では、頻繁に使用される別のPythonコレクションであるlistから辞書を作成する方法を学習します。インデックスまたはキーはリストコンテンツの一部ではありません。ただし、辞書では、値と呼ばれるすべての要素にキーまたはインデックスを付加する必要があります。 列挙の使用 enumerate関数は、enumerateオブジェクトのキーとしてカウンターを追加します。したがって、これを特定のリストに適用し、forループを使用します。これにより、列挙関数によってキーが生成される必要な辞書が作成されます。 例 Alist = ['Mon', 'Tue', '

  2. Python-同じ最初の値を持つタプルの合計を取得します

    タプルは、順序付けられているが変更できないPythonコレクションまたは配列です。最初の要素が同じであるタプルの数を取得した場合、最初の要素が等しいタプルの2番目の要素を追加する必要があるシナリオがあります。 マップとforループの使用 この方法では、最初にタプルで構成されるリストを検討します。次に、それらを辞書に変換して、タプル内の要素をキーと値のペアとして関連付けることができるようにします。次に、辞書の各キーの値を合計してforループを適用します。最後に、map関数を使用して、合計値を含むリストを取得します。 例 List = [(3,19),(7, 31), (7, 50), (1,