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

Pythonでリスト内の指定したインデックスの要素を削除する方法


Pythonでリスト内の特定のインデックスにある要素を削除したい場合、「enumerate」関数、「not in」演算子、シンプルなforループによる反復処理、そして「append」メソッドを組み合わせることで実現できます。本記事では、具体的なサンプルコードとその実行結果、処理の流れをわかりやすく解説します。

サンプルコード

以下に、リストから指定したインデックスの要素を削除するプログラムの実装例を示します。

my_list = [91, 75, 15, 45, 69, 78, 23, 71, 36, 72]

print("The list is : " )
print(my_list)

print("The list after sorting is : " )
my_list.sort()
print(my_list)

index_list = [2, 4, 5, 7]
print("The index values stored in the list are :")
print(index_list)

my_result = []
for index, element in enumerate(my_list):
   if index not in index_list:
      my_result.append(element)

print("The resultant list is : ")
print(my_result)

print("The list after sorting is : " )
my_result.sort()
print(my_result)

出力結果

The list is :
[91, 75, 15, 45, 69, 78, 23, 71, 36, 72]
The list after sorting is :
[15, 23, 36, 45, 69, 71, 72, 75, 78, 91]
The index values stored in the list are :
[2, 4, 5, 7]
The resultant list is :
[15, 23, 45, 72, 78, 91]
The list after sorting is :
[15, 23, 45, 72, 78, 91]

処理の流れと解説

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

  • sort()メソッドでリストを昇順にソートし、その結果を表示します。

  • 削除対象となるインデックス番号を別のリスト(index_list)に格納します。

  • インデックスのリストもコンソールに表示します。

  • 結果を格納するための空のリストを作成します。

  • enumerate()関数を使ってリストを反復処理し、各要素と同時にそのインデックスも取得します。

  • 「if」条件により、現在のインデックスが削除対象のインデックスリストに含まれていないかどうかを判定します。

  • 含まれていない場合のみ、その要素を空のリストに追加(append)します。

  • 最終的なリストをコンソールに出力します。

  • さらにsort()メソッドで再びソートし、結果を表示します。

ポイント:enumerate()関数とは

enumerate()関数は、リストなどのイテラブルオブジェクトを反復処理する際に、要素だけでなくそのインデックスも同時に取得できる便利な組み込み関数です。これにより、「何番目の要素か」という位置情報を条件分岐に活用することができます。

補足:リスト内包表記による簡潔な書き方

上記と同じ処理は、リスト内包表記を使うことでより簡潔に1行で記述することも可能です。

my_result = [element for index, element in enumerate(my_list) if index not in index_list]

この書き方は可読性が高く、Pythonらしい idiomatic なコードとして推奨されるスタイルです。状況に応じて使い分けるとよいでしょう。

  1. Pythonでリストから重複要素を削除する方法を徹底解説

    重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。

  2. Pythonでリストのすべてのサブリストを生成して出力する方法

    リストが与えられたとき、そのリストに含まれるすべてのサブリスト(部分リスト)を生成して出力するプログラムを紹介します。要素数 n のリストの場合、空のリストを含めるとサブリストの総数は n×(n+1)/2+1 個になります。 実行例 入力 : list = [1, 2, 3] 出力 : [], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] アルゴリズム 考え方はシンプルです。開始位置 i と終了位置 j の組み合わせをすべて試し、スライスで部分リストを取り出します。 ステップ1 : 対象となるリストを用意します。 ステップ2 : 結果を格納するため、最