Pythonでリスト内の交互の要素(偶数・奇数番目)の合計を求める方法
この記事では、数値のリストが与えられたときに、そのリスト内の交互の要素(偶数番目と奇数番目)の合計をそれぞれ計算する方法を解説します。主なアプローチとして、「リストスライスとrange関数を使う方法」と「%演算子を使う方法」の2つを紹介します。
リストスライスとrange関数を使う方法
1つおきの要素を取り出すには、リストのスライス機能が便利です。range関数とlen関数を組み合わせることで、合計対象となる要素数を取得できます。以下の例では、偶数番目の要素と奇数番目の要素の合計を、それぞれ別の値として出力しています。
サンプルコード
listA = [13,65,78,13,12,13,65]
# 元のリストを表示
print("Given list : " , str(listA))
# リストスライスを使用
res = [sum(listA[i:: 2])
for i in range(len(listA) // (len(listA) // 2))]
# 結果を表示
print("Sum of alternate elements in the list :\n ",res)
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given list : [13, 65, 78, 13, 12, 13, 65] Sum of alternate elements in the list : [168, 91]
range関数と%演算子を使う方法
%演算子(剰余演算子)を使うと、要素を偶数番目と奇数番目に振り分けることができます。各要素を新しい空のリストの対応する位置に加算していき、最終的に「偶数番目の要素の合計」と「奇数番目の要素の合計」を格納したリストを作成します。
サンプルコード
listA = [13,65,78,13,12,13,65]
# 元のリストを表示
print("Given list : " , str(listA))
res = [0, 0]
for i in range(0, len(listA)):
if(i % 2):
res[1] += listA[i]
else :
res[0] += listA[i]
# 結果を表示
print("Sum of alternate elements in the list :\n ",res)
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given list : [13, 65, 78, 13, 12, 13, 65] Sum of alternate elements in the list : [168, 91]
まとめ
今回の例では、偶数番目(インデックス0, 2, 4, 6)の要素は 13 + 78 + 12 + 65 = 168、奇数番目(インデックス1, 3, 5)の要素は 65 + 13 + 13 = 91 となり、結果は [168, 91] になります。スライスを使う方法はコードが簡潔に書ける一方、%演算子を使う方法は条件分岐が明確で処理の流れを直感的に理解しやすいという特徴があります。用途や可読性の要件に応じて使い分けるとよいでしょう。
-
【Python入門】リスト内の各要素を繰り返し複製する3つの方法
Pythonでプログラミングをしていると、リスト内の各要素を繰り返し(複製して)新しいリストを作成したい場面があります。例えば、データの水増しやテスト用データの生成などがその一例です。本記事では、リストの要素をそれぞれ2回ずつ繰り返した新しいリストを作成する方法を、3つのアプローチに分けてわかりやすく解説します。方法1:ネストしたforループ(リスト内包表記)を使う最もシンプルで直感的な方法は、リスト内包表記にforループを組み合わせるやり方です。各要素に対して内側のループで2回出力することで、元の要素とその複製を順番に並べた新しいリストを生成できます。サンプルコード# 元のリスト listA
-
Pythonでリストから重複要素を削除する方法を徹底解説
重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。