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

タプルリストのPythonグループ化された合計¶


このチュートリアルでは、同じキーを持つすべての値を異なるリストに追加するプログラムを作成します。それを明確に理解するために例を見てみましょう。

入力

list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]

出力

[('a', 6), ('b', 5), ('c', 12)]

所定の手順に従って問題を解決してください。

  • リストを初期化します。
  • dictを使用して最初のリストを辞書に変換し、変数に格納します。
  • 2番目のリストを繰り返し処理し、対応する値を辞書にあるキーに追加します。
  • 結果を印刷します。

# initializing the lists
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# convering list_one to dict
result = dict(list_one)
# iterating over the second list
for tup in list_two:
   # checking for the key in dict
   if tup[0] in result:
      result[tup[0]] = result.get(tup[0]) + tup[1]
      # printing the result as list of tuples
print(list(result.items()))

出力

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

[('a', 6), ('b', 5), ('c', 12)]

Counter fromcollections を使用すると、リストを繰り返すことなく上記の問題を解決できます。 。見てみましょう。

# importing the Counter
from collections import Counter
# initializing the lists
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# getting the result
result = Counter(dict(list_one)) + Counter(dict())
# printing the result as list of tuples
print(list(result.items()))

出力

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

[('a', 6), ('b', 5), ('c', 12)]

結論

チュートリアルについて疑問がある場合は、コメントセクションにその旨を記載してください。


  1. Pythonでのバイナリリストから整数へ

    さまざまなアプローチを使用して、Pythonで2進数を表す0と1のリストを10進数に変換できます。以下の例では、int()メソッドとビット単位の左シフト演算子を使用しています。 int()の使用 int() メソッドは2つの引数を取り、以下の構文に従って入力のベースを変更します。 int(x, base=10) Return an integer object constructed from a number or string x. 次の例では、int()メソッドを使用してリストの各要素を文字列として取得し、それらを結合して、基数10の整数に変換される最終的な文字列を形成します。

  2. Pythonのリストvsタプルvs辞書

    リストオブジェクトとタプルオブジェクトはシーケンスです。ディクショナリは、キーと値のペアのハッシュテーブルです。リストとタプルは、アイテムの順序付けられたコレクションです。辞書は順序付けられていないコレクションです。 リストオブジェクトと辞書オブジェクトは変更可能です。つまり、新しいアイテムを追加したり、アイテムを削除したりすることができます。タプルは不変のオブジェクトです。タプルオブジェクトでは、追加または削除操作はできません。 それぞれがカンマ区切りのアイテムのコレクションです。リストアイテムは角かっこ[]で囲まれ、タプルアイテムは丸かっこまたはかっこ()で囲まれ、辞書アイテムは中かっこ