Pythonで多次元リスト(ネストされたリスト)の末尾の要素を抽出する方法
多次元リスト(要素としてサイズの異なるリストを持つネストされたリスト)から、各サブリストの末尾(最後)の要素を取り出すには、シンプルな反復処理と「append」メソッド、そして負のインデックスを組み合わせて使用します。
サンプルコード
以下に具体的な実装例を示します。
my_list = [[41, 65, 25], [45, 89], [12, 65, 75, 36, 58], [49, 12, 36, 98],[47, 69, 78]]
print("The list is : " )
print(my_list)
print("The list after sorting is : " )
my_list.sort()
print(my_list)
my_result = []
for sub_list in my_list:
my_result.append(sub_list[-1])
print("The resultant list is :")
print(my_result)
print("The list after sorting is : " )
my_result.sort()
print(my_result)
実行結果
The list is : [[41, 65, 25], [45, 89], [12, 65, 75, 36, 58], [49, 12, 36, 98], [47, 69, 78]] The list after sorting is : [[12, 65, 75, 36, 58], [41, 65, 25], [45, 89], [47, 69, 78], [49, 12, 36, 98]] The resultant list is : [58, 25, 89, 78, 98] The list after sorting is : [25, 58, 78, 89, 98]
処理の流れと解説
リストの中にリストが入ったネストされたリストを定義し、まずコンソールに表示します。
「sort」メソッドを使ってリストをソートします。ネストされたリストの場合、各サブリストの先頭要素が比較の基準になります。
結果を格納するための空のリストを作成します。
リストをfor文で反復処理し、負のインデックス「-1」を使って各サブリストの最後の要素にアクセスします。
取り出した要素を、あらかじめ用意しておいた空のリストに「append」メソッドで順に追加していきます。
結果として得られたリストをコンソールに出力します。
最後に、この結果リストを再度ソートし、コンソールに表示して完了です。
ここでのポイントは「sub_list[-1]」という負のインデックスの使い方です。Pythonでは「-1」がリストの最後の要素を表すため、サブリストの長さがバラバラであっても、それぞれの末尾の要素を確実に取得できます。この手法は、行ごとに要素数が異なる不揃いなデータ構造を扱う際に特に便利です。
-
Pythonでリストのリストを列ごとの個別要素に変換する方法
Pythonでデータ分析やデータ処理を行っていると、与えられたリストを整形(リシェイプ)して、異なる列構造を持つリストを作り直す必要がある場面に遭遇します。本記事では、リストのリストを列単位で個別の要素に変換するための複数のアプローチを、サンプルコード付きでわかりやすく解説します。方法1:スライシングを使うリストを任意の位置でスライスすることで、列状の構造を作り出せます。ここでは、元のリストを中央で分割した新しいリストへと変換します。処理には2つのforループを使用し、外側のループで各サブリストの先頭(0番目)から2番目の要素までを、内側のループで2番目以降から末尾までの要素を扱います。サンプ
-
Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで
Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5