Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定したインデックスの要素を繰り返す方法|enumerateとextendを活用したサンプルコード

リスト内の特定のインデックス(位置)にある要素だけを繰り返して新しいリストを作成したい場合、シンプルなforループによる反復処理に加えて、enumerate関数、extendメソッド、appendメソッドを組み合わせることで簡単に実現できます。

この記事では、指定したインデックスの要素を2回繰り返すPythonプログラムの具体例を、コード・実行結果・処理の流れに沿ってわかりやすく解説します。

サンプルコード

my_list = [34, 56, 77, 23, 31, 29, 62, 99]
print("The list is :")
print(my_list)
index_list = [3, 1, 4, 6]
my_result = []
for index, element in enumerate(my_list):
   if index in index_list:
      my_result.extend([element, element])
   else :
      my_result.append(element)
print("The result is :")
print(my_result)

実行結果

The list is :
[34, 56, 77, 23, 31, 29, 62, 99]
The result is :
[34, 56, 56, 77, 23, 23, 31, 31, 29, 62, 62, 99]

コードの解説

  • まず、元となる整数のリスト my_list を定義し、コンソールに表示します。

  • 次に、繰り返し対象となる要素のインデックス番号を格納したリスト index_list を定義します。ここでは「3番目、1番目、4番目、6番目」の要素が対象です。

  • 結果を格納するための空のリスト my_result を用意します。

  • enumerate関数を使うことで、リストを反復処理しながら各要素のインデックスと値を同時に取得できます。取得したインデックスが index_list に含まれているかどうかを in 演算子で判定します。

  • インデックスが含まれている場合(=繰り返し対象の場合)は、extendメソッドを使って同じ要素を2つ連結して追加します。これにより、該当する要素だけが2回繰り返されます。

  • 含まれていない場合は、appendメソッドを使って要素を1つだけそのまま追加します。

  • すべての要素を処理し終えたら、最終的なリストをコンソールに出力して完了です。

ポイントまとめ

enumerateは「インデックスと要素を同時に取り出せる」便利な関数であり、インデックスベースの条件分岐と相性が抜群です。また、複数要素を一度に追加できるextendと、単一要素を追加するappendを使い分けることで、柔軟なリスト操作が可能になります。同様の処理はリスト内包表記でも書けますが、条件ごとに追加方法が異なるケースでは、今回のようなforループの方が可読性が高くおすすめです。


  1. リスト内の要素の合計を求めるPythonプログラム

    この記事では、Pythonを使ってリスト内のすべての要素の合計を求める方法について、具体的なコード例とともに解説します。問題の定義リストが入力として与えられたとき、そのリストに含まれるすべての要素の合計値を計算する必要があります。例えば、[1, 2, 3, 4, 5]というリストが与えられた場合、出力は 15(1+2+3+4+5)となります。この問題を解くためのアプローチは主に2つあります。1つは組み込み関数を使用する方法、もう1つはブルートフォース(総当たり)方式でループ処理を行う方法です。方法1:組み込み関数 sum() を使うPythonには標準で用意されている組み込み関数 sum()

  2. PythonでリストからN個の最大要素を取得する方法

    整数のリストが与えられたとき、その中からN個の大きな要素を取り出して新しいリストとして返すのが、ここでの課題です。本記事では、基本的なループ処理による方法から、Python標準ライブラリを活用した効率的な方法まで、サンプルコードとともに解説します。 例 入力 : [40, 5, 10, 20, 9] N = 2 出力 : [40, 20] アルゴリズム 整数のリストと、取得する要素数Nを受け取ります。 N回のループを実行します。 各ループでリスト内の最大値を探し、新しいリストに格納すると同時に元のリストから削除します。 実装コード def Nnumberele(list1, N):