【Python】リスト内のタプルからn番目の要素を取得する方法
Pythonのリストには、タプルを要素として格納することができます。本記事では、リスト内の各タプルからn番目の要素を取り出す方法を、具体的なサンプルコードと実行結果とともに解説します。
方法1:インデックスを使う
リスト内包表記を使えば、forループでリストの各タプルを走査しながら、指定したインデックスの要素に直接アクセスできます。以下の例では、各タプルのインデックス1(2番目)の要素を取り出し、新しいリストに結果を格納しています。
サンプルコード
Alist = [('Mon','3 pm',10),('Tue','12pm',8),('Wed','9 am',8),('Thu','6 am',5)]
# 元のリストを表示
print("Given list: ", Alist)
# インデックス1の要素を取得
res = [x[1] for x in Alist]
print("各タプルの2番目の要素:\n", res)
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given list: [('Mon', '3 pm', 10), ('Tue', '12pm', 8), ('Wed', '9 am', 8), ('Thu', '6 am', 5)]
各タプルの2番目の要素:
['3 pm', '12pm', '9 am', '6 am']
方法2:itemgetterを使う
operatorモジュールのitemgetter関数は、指定したインデックス位置の要素を取得するための呼び出し可能オブジェクトを返します。map関数と組み合わせることで、リスト内のすべてのタプルに対して同じ操作を一括で適用でき、最後にlist関数で結果をリスト化します。以下の例では、各タプルのインデックス2(3番目)の要素を取得しています。
サンプルコード
from operator import itemgetter
Alist = [('Mon','3 pm',10),('Tue','12pm',8),('Wed','9 am',8),('Thu','6 am',5)]
# 元のリストを表示
print("Given list: ", Alist)
# itemgetterでインデックス2の要素を取得
res = list(map(itemgetter(2), Alist))
print("各タプルの3番目の要素:\n", res)
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given list: [('Mon', '3 pm', 10), ('Tue', '12pm', 8), ('Wed', '9 am', 8), ('Thu', '6 am', 5)]
各タプルの3番目の要素:
[10, 8, 8, 5]
まとめ
リスト内のタプルからn番目の要素を取得するには、リスト内包表記とoperator.itemgetterの2つの方法が有効です。コードの可読性を重視するならリスト内包表記、大量データを扱う際の処理効率や関数型スタイルを重視するならitemgetterがおすすめです。目的や規模に応じて使い分けるとよいでしょう。
-
Pythonでリストから重複要素を削除する方法を徹底解説
重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。
-
Pythonでインデックスを指定してリストから要素を削除する方法
Pythonでリストからインデックスを指定して要素を削除するには、主に2つの方法があります。del文を使う方法と、pop()メソッドを使う方法です。 del文で要素を削除する del文は、削除したい要素のインデックスを指定して使用します。指定した位置の要素がリストから取り除かれます。 >>> L1=[11,22,33,44,55,66,77] >>> del L1[2] >>> L1 [11, 22, 44, 55, 66, 77] 上記の例では、インデックス2(3番目の要素「33」)が削除され、リストの要素数が1つ減っています。del文は