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)]
-
Python-Kより大きい最初の要素のインデックスを取得します
Pythonリストの項目の値は、必ずしもソートされた順序である必要はありません。さらに、特定の値よりも大きい特定の値のみに関心がある場合もあります。この記事では、どのように入手できるかを見ていきます 列挙の使用 列挙を使用して、リスト内の要素のインデックスと値の両方を取得します。次に、大なり記号を適用して、条件が満たされる最初の要素のみを取得します。次の関数は、各リスト要素を1つずつ調べます。 例 List = [21,10,24,40.5,11] print("Given list: " + str(List)) #Using next() + enumerate()
-
Python-同じ最初の値を持つタプルの合計を取得します
タプルは、順序付けられているが変更できないPythonコレクションまたは配列です。最初の要素が同じであるタプルの数を取得した場合、最初の要素が等しいタプルの2番目の要素を追加する必要があるシナリオがあります。 マップとforループの使用 この方法では、最初にタプルで構成されるリストを検討します。次に、それらを辞書に変換して、タプル内の要素をキーと値のペアとして関連付けることができるようにします。次に、辞書の各キーの値を合計してforループを適用します。最後に、map関数を使用して、合計値を含むリストを取得します。 例 List = [(3,19),(7, 31), (7, 50), (1,