Pythonでリストの最初と最後の偶数要素間の距離を求める方法
Pythonプログラミングでは、リスト内の最初の偶数要素と最後の偶数要素の間の距離(差)を求めたいケースがあります。このような場合、インデックスを使ってリストの各要素にアクセスし、偶数かどうかを判定したうえで、最初と最後の偶数要素の位置の差を計算します。
サンプルコード
以下に具体的な実装例を示します。
my_list = [2, 3, 6, 4, 6, 2, 9, 1, 14, 11]
print("The list is :")
print(my_list)
my_indices_list = [idx for idx in range(
len(my_list)) if my_list[idx] % 2 == 0]
my_result = my_indices_list[-1] - my_indices_list[0]
print("The result is :")
print(my_result)出力結果
The list is : [2, 3, 6, 4, 6, 2, 9, 1, 14, 11] The result is : 8
処理の解説
まず、整数を含むリストを定義し、コンソールに表示します。
リスト内包表記を使ってリストを走査し、各要素が2で割り切れるかどうか(偶数かどうか)を判定します。
偶数である要素のインデックスだけを新しいリストに格納します。
格納されたインデックスリストの最後の要素(
[-1])と最初の要素([0])を参照し、その差を求めます。これにより、最初の偶数要素から最後の偶数要素までの距離が得られます。計算結果を変数に代入します。
最後に、その変数の値をコンソールに出力します。
補足
この例では、リスト [2, 3, 6, 4, 6, 2, 9, 1, 14, 11] の中で偶数は「2, 6, 4, 6, 2, 14」です。最初の偶数「2」はインデックス0にあり、最後の偶数「14」はインデックス8にあるため、距離は 8 − 0 = 8 となります。
なお、リストに偶数が1つも存在しない場合、my_indices_list は空になり、インデックス参照時にエラーが発生します。実務で使う場合は、以下のように偶数の存在チェックを追加すると安全です。
if my_indices_list:
my_result = my_indices_list[-1] - my_indices_list[0]
else:
print("リストに偶数要素が存在しません")
-
Pythonのリストとタプルの違いとは?特徴と使い分けのポイントを解説
リストとタプルはどちらもシーケンス型 リスト(list)とタプル(tuple)は、どちらもPythonにおける「シーケンス型」に分類されるデータ型です。両者ともカンマで区切られた複数の要素を持ち、数値や文字列など異なる型のオブジェクトを混在させて格納することができます。 最大の違いは「可変か不変か」 リストとタプルの最も重要な違いは、リストが可変(mutable)であるのに対し、タプルは不変(immutable)であるという点です。 不変(イミュータブル)なオブジェクトは、一度メモリ上に作成されると内容を変更できません。そのため、タプルに対しては要素の追加・変更・削除が一切行えません。一方、
-
Pythonのリストとタプルの違いとは?特徴と使い分けのポイントを解説
Pythonでは複数の値をまとめて扱えるシーケンス型として、リスト(list)とタプル(tuple)がよく使われます。どちらも似たような役割を持っていますが、決定的な違いがあります。それはタプルが「不変(immutable)」であるという点です。 最大の違い:タプルは変更できない タプルは一度作成すると、その中の値を後から変更することができません。一方、リストは「可変(mutable)」なので、作成後でも要素の追加・削除・変更が自由に行えます。 # リスト:変更可能 my_list = [1, 2, 3] my_list[0] = 10 # 正常に変更できる # タプル:変更不可 my_