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

Python入門:連続する要素を持つタプルだけをフィルタリングする方法

Pythonでは、タプルのリストの中から「要素が連続した値になっているタプル」だけを取り出したいケースがあります。たとえば (23, 24, 25, 26) のように各要素が1ずつ増えているタプルのみを抽出するイメージです。

このような場合は、タプルを引数として受け取り、隣り合う要素の値を比較してブール値(True / False)を返す判定用の関数を定義し、それを使ってリストを絞り込むのが基本的なアプローチです。

サンプルコード

以下に具体的な実装例を示します。

print("メソッド定義を開始...")
def check_consec_tuple_elem(my_tuple):
    for idx in range(len(my_tuple) - 1):
        if my_tuple[idx + 1] != my_tuple[idx] + 1:
            return False
    return True
print("メソッド定義を終了...")

my_tuple = [(23, 24, 25, 26), (65, 66, 78, 29), (11, 28, 39), (60, 61, 62, 63)]

print("タプルのリストは : ")
print(my_tuple)

my_result = []

for elem in my_tuple:
    if check_consec_tuple_elem(elem):
        my_result.append(elem)

print("結果のタプルは : ")
print(my_result)

実行結果

メソッド定義を開始...
メソッド定義を終了...
タプルのリストは : 
[(23, 24, 25, 26), (65, 66, 78, 29), (11, 28, 39), (60, 61, 62, 63)]
結果のタプルは : 
[(23, 24, 25, 26), (60, 61, 62, 63)]

コードの解説

  • まず check_consec_tuple_elem という名前の関数を定義し、タプルを引数として受け取ります。
  • 関数内ではタプルを順番に走査し、「あるインデックスの要素」と「その次のインデックスの要素」が1ずつ異なる(連続している)かどうかをチェックします。
  • 連続していないペアが見つかった時点で False を返します。最後まで確認できれば True を返します。
  • 関数の外側では、複数のタプルを含むリストを定義し、コンソールに表示しています。
  • 結果を格納するための空のリスト my_result を用意します。
  • タプルのリストをループで回しながら、各タプルを判定関数に渡します。
  • 判定が True だったタプルだけを append メソッドで結果リストに追加します。
  • 最後に、連続する要素を持つタプルのみが格納されたリストを出力として表示します。

補足:all() を使ったより簡潔な書き方

上記の処理は、組み込み関数 all() とジェネレータ式を組み合わせることで、1行で表現することもできます。

def check_consec_tuple_elem(my_tuple):
    return all(my_tuple[i + 1] == my_tuple[i] + 1 for i in range(len(my_tuple) - 1))

この書き方では、すべての隣接要素が連続している場合にのみ True が返されるため、for文で明示的に False を返す必要がありません。コードを短くしたい場合や、条件判定を読みやすくまとめたい場合に有効です。

  1. Pythonでタプルのリストからタプルを組み合わせる方法

    データ分析では、Pythonが提供するさまざまなデータ構造を組み合わせて扱うことがよくあります。リストにはタプルを要素として格納できるため、「リストの中にタプルがある」という構造も簡単に作れます。本記事では、タプルの各要素を別の要素と組み合わせて、新しい「タプルの組み合わせリスト」を生成する方法を、具体的なコード例とともに解説します。方法1:forループ(リスト内包表記)を使うまずは最も基本的な方法です。リスト内包表記の中でforループをネストし、各タプルからリスト部分の要素を1つずつ取り出しながら、同じタプル内のもう1つの要素(ここでは曜日の文字列)とペアを作成していきます。コード例Alis

  2. Pythonのタプルに要素を追加する方法【リスト変換と連結のテクニック】

    Pythonのタプルは変更不可(イミュータブル)なオブジェクト Pythonのタプル(tuple)はイミュータブル(変更不可)なオブジェクトです。そのため、append()のような要素を追加・変更しようとする操作は許されず、直接実行するとエラーが発生します。 しかし、一度タプルをリストに変換して操作した後、再びタプルへ戻すという方法を使えば、結果的に「タプルへ要素を追加した状態」を実現できます。 タプルへの要素追加の手順 具体的には、以下の2つの組み込み関数を使用します。 list(): タプルをリストに変換する tuple(): リストをタプルに変換する まず list() 関数でタプ