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]
上記のPythonのコードでは、まず2つのリストlist1
とlist2
を定義しています。
list1
には[1, 2, 3]という整数の要素が、list2
には[4, 5, 6]という整数の要素が格納されています。
リスト内の要素を要素ごとに足すためには、両リストの同じ位置にある要素を順番に足していく必要があります。
このためにzip
関数を使用します。zip
関数は複数のリストを取り、それらのリストから同じ位置にある要素をタプルとして取り出します。
次にリスト内包表記を用いて、zip
関数で取り出された各タプルの要素を足し合わせています。
具体的には、for x, y in zip(list1, list2)
でlist1
とlist2
の同じ位置にある要素をx
とy
に代入し、それらを足し合わせています。
足し合わせた結果はsum_list
という新しいリストに格納され、最終的にこのリストが出力されます。
最後にprint
関数を用いてsum_list
を出力すると、[5, 7, 9]という結果が得られます。この結果は、元のリストの対応する要素を足し合わせた結果です(例:1+4=5, 2+5=7, 3+6=9)。
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つのリストlist1
とlist2
に対して、特定の条件下で要素を足し合わせる方法を示しています。
リスト内包表記を使ってzip
関数で得られた各タプルの要素を足し合わせていますが、ここでは特定の条件を追加しています。
条件はif x % 2 == 0 and y % 2 == 0
としており、これは「xとyの両方が偶数の場合にのみ足し合わせる」という意味です。
x % 2 == 0
はxが偶数かどうかをチェックするための式で、偶数の場合は2で割った余りが0になります。同様にy % 2 == 0
もyが偶数かどうかをチェックします。
この条件に基づいて足し合わせられるのは、list1
とlist2
の要素が両方とも偶数の場合だけです。
例えば、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つのリストを足し合わせる方法を示しています。このためには、標準ライブラリitertools
のzip_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やプログラミングに関するコラム
- CSSのFlexboxで簡単横並び!基本から応用までサンプルコードも使い紹介
- JavaScriptで位置情報を取得する方法と注意点
- JavaScriptで作る効果的なポップアップとモーダルウィンドウ
- JavaScriptによる要素変更:DOMとスタイル制御
- Font Awesome活用法を紹介!HTMLでアイコンを簡単に追加する方法を解説