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

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


タプルは、順序付けられているが変更できないPythonコレクションまたは配列です。最初の要素が同じであるタプルの数を取得した場合、最初の要素が等しいタプルの2番目の要素を追加する必要があるシナリオがあります。

マップとforループの使用

この方法では、最初にタプルで構成されるリストを検討します。次に、それらを辞書に変換して、タプル内の要素をキーと値のペアとして関連付けることができるようにします。次に、辞書の各キーの値を合計してforループを適用します。最後に、map関数を使用して、合計値を含むリストを取得します。

List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]
# Converting it to a dictionary
tup = {i:0 for i, v in List}
for key, value in List:
   tup[key] = tup[key]+value
# using map
result = list(map(tuple, tup.items()))
print(result)

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

出力

[(3, 19), (7, 81), (1, 37.5)]

コレクションの使用

ここでは、上記と同様のアプローチを取りますが、コレクションモジュールのdefaultdictメソッドを使用します。これで、map関数を使用する代わりに、辞書アイテムにアクセスしてリストに変換します。

from collections import defaultdict
# list of tuple
List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]
dict = defaultdict(int)
for key, value in List:
   dict[key] = dict[key]+value
# Printing output
print(list(dict.items()))

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

出力

[(3, 19), (7, 81), (1, 37.5)]

  1. Python-Kより大きい最初の要素のインデックスを取得します

    Pythonリストの項目の値は、必ずしもソートされた順序である必要はありません。さらに、特定の値よりも大きい特定の値のみに関心がある場合もあります。この記事では、どのように入手できるかを見ていきます 列挙の使用 列挙を使用して、リスト内の要素のインデックスと値の両方を取得します。次に、大なり記号を適用して、条件が満たされる最初の要素のみを取得します。次の関数は、各リスト要素を1つずつ調べます。 例 List = [21,10,24,40.5,11] print("Given list: " + str(List)) #Using next() + enumerate()

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

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