【Python】リスト(list)内の要素ごとに足し算する方法と実例

【Python】リスト(list)内の要素ごとに足し算する方法と実例

公開: 更新:


Pythonリスト内の要素を要素ごとに足す方法

【サンプルコード】
list1 = [1, 2, 3]
list2 = [4, 5, 6]
sum_list = [x + y for x, y in zip(list1, list2)]
print(sum_list)
【実行結果】
[5, 7, 9]

上記のコードでは、まず2つのリストlist1list2を定義しています。

list1には[1, 2, 3]という整数の要素が、list2には[4, 5, 6]という整数の要素が格納されています。

リスト内の要素を要素ごとに足すためには、両リストの同じ位置にある要素を順番に足していく必要があります。

このためにzip関数を使用します。zip関数は複数のリストを取り、それらのリストから同じ位置にある要素をタプルとして取り出します。

次にリスト内包表記を用いて、zip関数で取り出された各タプルの要素を足し合わせています。

具体的には、for x, y in zip(list1, list2)list1list2の同じ位置にある要素をxy代入し、それらを足し合わせています。

足し合わせた結果はsum_listという新しいリストに格納され、最終的にこのリストが出力されます。

最後にprint関数を用いてsum_listを出力すると、[5, 7, 9]という結果が得られます。この結果は、元のリストの対応する要素を足し合わせた結果です(例:1+4=5, 2+5=7, 3+6=9)。

「Python」を学べるコードキャンプのサービス

Pythonリスト内の要素を条件付きで足す方法

【サンプルコード】
list1 = [1, 2, 4, 9]
list2 = [4, 5, 6, 7]
sum_list = [x + y for x, y in zip(list1, list2) if x % 2 == 0 and y % 2 == 0]
print(sum_list)
【実行結果】
[10]

上記のコードでは、2つのリストlist1list2に対して、特定の条件下で要素を足し合わせる方法を示しています。

リスト内包表記を使ってzip関数で得られた各タプルの要素を足し合わせていますが、ここでは特定の条件を追加しています。

条件はif x % 2 == 0 and y % 2 == 0としており、これは「xとyの両方が偶数の場合にのみ足し合わせる」という意味です。

x % 2 == 0はxが偶数かどうかをチェックするための式で、偶数の場合は2で割った余りが0になります。同様にy % 2 == 0もyが偶数かどうかをチェックします。

この条件に基づいて足し合わせられるのは、list1list2の要素が両方とも偶数の場合だけです。

例えば、list1の2番目の要素(2)とlist2の2番目の要素(5)は、list2の要素が奇数なので足し合わせられません。

最終的にsum_listに格納されるのは、条件を満たす要素だけです。この例では、2つのリストの3番目の要素(4と6)だけが条件を満たすので、その合計である10がsum_listに格納されます。

異なる長さのリストを足し合わせる方法

【サンプルコード】
from itertools import zip_longest
list1 = [1, 2, 3]
list2 = [4, 5]
sum_list = [x + (y if y is not None else 0) for x, y in zip_longest(list1, list2)]
print(sum_list)
【実行結果】
[5, 7, 3]

上記のコードでは、長さが異なる2つのリストを足し合わせる方法を示しています。このためには、標準ライブラリitertoolszip_longest関数を使用します。

zip_longest関数は、最も長いリストに合わせて他のリストの要素を取り出します。足りない部分にはNoneを挿入します。

リスト内包表記を使って、zip_longest関数で得られた各タプルの要素を足し合わせます。

ただし、y if y is not None else 0という条件を使用しています。これは「yがNoneでなければyを使い、Noneの場合は0を使う」という意味です。この条件を使うことで一方のリストに要素がない場合でも、もう一方のリストの要素と0を足し合わせることができます。

結果として、list1の3番目の要素(3)はlist2に対応する要素がないため、3 + 0 = 3と計算されます。このようにして、異なる長さのリストを足し合わせることができます。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア 中途採用者向けのIT・プログラミング研修 - IT・プログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する