Pythonでnより大きいタプルをタプルのリストから削除する方法
Pythonでは、タプルのリストから特定の値「n」より大きい(または条件に合致しない)タプルを取り除きたい場面があります。このような処理には、リスト内包表記やlambda関数と組み合わせたfilter()関数が便利です。
匿名関数(lambda)とは
匿名関数とは、名前を持たずに定義される関数のことです。通常、Pythonの関数はdefキーワードを使って定義しますが、匿名関数はlambdaキーワードを使用して定義します。
lambdaは1つの式のみを受け取りますが、引数は任意の数だけ指定できます。受け取った式を評価し、その結果を戻り値として返します。
サンプルコード
以下は、リスト内包表記を使って数値が100以上のタプルだけを抽出する例です。
my_tuple = [('a', 130), ('b', 230), ('c', 25), ('z', 654), ('f', 69)]
print("元のタプルのリスト : ")
print(my_tuple)
my_result = [i for i in my_tuple if i[1] >= 100]
print("結果のタプルのリスト : ")
print(my_result)実行結果
元のタプルのリスト :
[('a', 130), ('b', 230), ('c', 25), ('z', 654), ('f', 69)]
結果のタプルのリスト :
[('a', 130), ('b', 230), ('z', 654)]filter()とlambdaを使う方法
同じ処理は、filter()関数とlambdaを組み合わせても実現できます。
my_tuple = [('a', 130), ('b', 230), ('c', 25), ('z', 654), ('f', 69)]
my_result = list(filter(lambda i: i[1] >= 100, my_tuple))
print(my_result)
# [('a', 130), ('b', 230), ('z', 654)]処理の流れの解説
- まず、複数のタプルを含むリストを定義し、コンソールに表示します。
- リストを反復処理しながら、各タプルの2番目の要素(インデックス1)が指定した閾値(ここでは100)以上かどうかを判定します。
- 条件を満たすタプルだけが新しいリストに格納されます。
- その結果は変数に保存され、最後にコンソールへ出力されます。
このように、リスト内包表記やfilter()+lambdaを活用すれば、簡潔で読みやすいコードでタプルのリストを効率的にフィルタリングできます。
-
【Python入門】リスト内のKより大きい値の個数を数える3つの方法
Pythonのリストの中から、特定の値(K)より大きい要素がいくつあるかを数える処理は、データ分析やアルゴリズムの問題など、多くの複雑な課題の基礎となる頻出の操作です。この記事では、代表的な3つの実装方法をサンプルコードとともに解説します。方法1: forループを使う方法最も基本的なアプローチは、forループでリストを順番に走査し、条件に合致する要素をカウントする方法です。処理の流れが直感的で分かりやすく、初心者にも理解しやすいのが特徴です。# forループでKより大きい要素の個数を求める # リストの初期化 test_list = [1, 7, 5, 6, 3, 8] # 基準値kの設定
-
Pythonでタプルのリストからタプルを組み合わせる方法
データ分析では、Pythonが提供するさまざまなデータ構造を組み合わせて扱うことがよくあります。リストにはタプルを要素として格納できるため、「リストの中にタプルがある」という構造も簡単に作れます。本記事では、タプルの各要素を別の要素と組み合わせて、新しい「タプルの組み合わせリスト」を生成する方法を、具体的なコード例とともに解説します。方法1:forループ(リスト内包表記)を使うまずは最も基本的な方法です。リスト内包表記の中でforループをネストし、各タプルからリスト部分の要素を1つずつ取り出しながら、同じタプル内のもう1つの要素(ここでは曜日の文字列)とペアを作成していきます。コード例Alis