Pythonでリストのリスト(ネストされたリスト)から特定の列を削除する方法
リストのリスト(二次元リスト)では、各サブリストの同じインデックス位置にある要素が、表における「列」のような構造を形成します。本記事では、このようなリストのリストから特定の列を削除する方法を解説します。具体的には、各サブリストから同じインデックス位置の要素をまとめて削除することになります。
pop()メソッドを使う方法
pop()メソッドは、指定した位置にある要素を削除し、その要素を返します。リスト内包表記と組み合わせることで、各サブリストを反復処理しながら、対象となるインデックスの要素を一括で削除できます。
コード例
# リストのリスト
listA = [[3, 9, 5, 1],
[4, 6, 1, 2],
[1, 6, 12, 18]]
# 元のリストを表示
print("元のリスト \n", listA)
# pop()を適用してインデックス2の要素を削除
[i.pop(2) for i in listA]
# 結果を表示
print("列を削除した後のリスト :\n ", listA)実行結果
上記のコードを実行すると、以下の結果が得られます。
元のリスト [[3, 9, 5, 1], [4, 6, 1, 2], [1, 6, 12, 18]] 列を削除した後のリスト : [[3, 9, 1], [4, 6, 2], [1, 6, 18]]
この例では、インデックス2(3番目の要素)にあたる「5」「1」「12」が各行から削除され、元のリスト自体が直接変更されている点に注意してください。
del文を使う方法
次に紹介するのは、del文を使う方法です。pop()メソッドと同様に元のリストを直接変更しますが、削除した要素を戻り値として受け取らない点が異なります。削除したい列のインデックスを指定するだけで、シンプルに記述できます。
コード例
# リストのリスト
listA = [[3, 9, 5, 1],
[4, 6, 1, 2],
[1, 6, 12, 18]]
# 元のリストを表示
print("元のリスト \n", listA)
# del文でインデックス2の要素を削除
for i in listA:
del i[2]
# 結果を表示
print("列を削除した後のリスト :\n ", listA)実行結果
上記のコードを実行すると、以下の結果が得られます。
元のリスト [[3, 9, 5, 1], [4, 6, 1, 2], [1, 6, 12, 18]] 列を削除した後のリスト : [[3, 9, 1], [4, 6, 2], [1, 6, 18]]
まとめ
どちらの方法も、各サブリストの同じインデックス位置の要素を削除することで、リストのリストから列を取り除くことができます。削除した要素の値が必要な場合はpop()メソッドを、単純に削除だけでよい場合はdel文を選ぶとよいでしょう。なお、どちらの方法も元のリストを直接変更するため、元のデータを保持しておきたい場合は、あらかじめcopy()などでコピーを作成しておくことをおすすめします。
-
Pythonでリストを定義する方法とは?基本の書き方を初心者向けに解説
リスト(List)は、Pythonにおける基本的なシーケンス型データ構造の一つです。複数の要素を角括弧 [ ] で囲み、カンマで区切って表現します。各要素は文字列や数値など異なるデータ型が混在していても問題ありません。また、リストは順序付き(ordered)コレクションであるため、格納した要素の並び順は保持されます。個々の要素には、0から始まるインデックスを使ってアクセスできます。たとえば最初の要素はインデックス 0、2番目の要素は 1 で参照します。リストの定義例list1 = [physics, chemistry, 1997, 2000] list2 = [1, 2, 3, 4, 5]
-
Pythonリスト入門:作成から操作、削除まで徹底解説
このチュートリアルでは、Pythonのリスト(List)について学びます。リストの作成方法、要素へのアクセス、要素の追加・削除、リスト自体の削除など、基本的な操作を一つずつ丁寧に解説していきます。 Pythonでは、リストは角括弧 [] を使って構築し、各要素はカンマ , で区切って記述します。 Pythonのリストは、異なる型のオブジェクトを混在させて格納できるのが特徴です。すべて文字列である必要も、整数である必要もありません。例えば、以下のように複数の型が混ざったリストを作成できます。mixedTypesList = [a, True, 1, 1.0] リストの作成方法 リストは、角括弧