Pythonでタプル内のリスト要素の合計を求める方法
Pythonで、タプルの中に含まれるリストの要素を合計したい場面はよくあります。そのような場合には、リスト内包表記とsum()関数を組み合わせることで、簡潔に実装できます。
前提知識
まず、押さえておきたい基本ポイントを整理します。
- リスト:整数、浮動小数点数、文字列など、異なるデータ型の値をまとめて格納できるデータ構造です。
- タプルのリスト:複数のタプルを1つのリストに格納したものです。各タプルにはキーとなる値と、数値のリストなどが入ります。
- リスト内包表記:forループを1行で書ける簡潔な記法で、リストの反復処理や変換を行うのに便利です。
- sum()関数:イテラブル(リストやタプルなど)を受け取り、その要素をすべて足し合わせた合計値を返します。
サンプルコード
以下は、タプル内のリスト要素を合計する具体例です。
my_list = [('Hi', [45, 67, 21]), ('There', [45, 32, 1]), ('Jane', [59, 13])]
print("元のリスト : ")
print(my_list)
my_result = [(key, sum(lst)) for key, lst in my_list]
print("合計後のタプルのリスト : ")
print(my_result)
実行結果
元のリスト :
[('Hi', [45, 67, 21]), ('There', [45, 32, 1]), ('Jane', [59, 13])]
合計後のタプルのリスト :
[('Hi', 133), ('There', 78), ('Jane', 72)]
コードの解説
- まず、キー(文字列)と数値のリストを持つタプルのリストを定義し、コンソールに表示します。
- リスト内包表記
[(key, sum(lst)) for key, lst in my_list]を使って、各タプルを順番に取り出します。 - 各タプルから
key(文字列)とlst(数値のリスト)をアンパックし、sum(lst)でリスト内の全要素を合計します。 - 結果として、「キーと合計値」のペアからなる新しいタプルのリストが生成され、変数
my_resultに格納されます。 - 最後に、その結果をコンソールに出力します。
補足:sum()関数の初期値について
sum() 関数は第2引数に初期値を指定できます。例えば sum(lst, 10) と書くと、リストの合計に10を加えた値が返されます。空のリストに対して sum([]) を実行した場合はエラーにならず 0 が返るため、安全に利用できます。
このように、リスト内包表記と sum() を組み合わせれば、ネストされたデータ構造の集計もわずか1行でスマートに処理できます。データ分析や集計処理などで頻繁に使われるテクニックなので、ぜひ覚えておきましょう。
-
Pythonでタプルのリストからタプルを組み合わせる方法
データ分析では、Pythonが提供するさまざまなデータ構造を組み合わせて扱うことがよくあります。リストにはタプルを要素として格納できるため、「リストの中にタプルがある」という構造も簡単に作れます。本記事では、タプルの各要素を別の要素と組み合わせて、新しい「タプルの組み合わせリスト」を生成する方法を、具体的なコード例とともに解説します。方法1:forループ(リスト内包表記)を使うまずは最も基本的な方法です。リスト内包表記の中でforループをネストし、各タプルからリスト部分の要素を1つずつ取り出しながら、同じタプル内のもう1つの要素(ここでは曜日の文字列)とペアを作成していきます。コード例Alis
-
【Python入門】リスト・タプル・辞書の違いを徹底解説
Pythonの3大コレクション:リスト、タプル、辞書 Pythonには複数のデータをまとめて扱うためのコレクション型が用意されています。中でもよく使われるのがリスト(list)、タプル(tuple)、辞書(dict)の3つです。それぞれ特徴が異なるため、用途に応じて使い分けることが重要です。 基本的な違いの概要 リストとタプルはシーケンス(順序付き)オブジェクトであり、要素を順番に並べて管理します。一方、辞書はキーと値のペアを格納するハッシュテーブル構造です。 リストとタプルは「順序を持つコレクション」ですが、辞書は「順序を持たないコレクション」として扱われます。 リストと辞書はミュータブ