PythonでKの値に基づいてタプルをトリミングする方法
Kの値に基づいてタプルをトリミング(両端の要素を削除)したい場合は、シンプルな反復処理と append メソッドを組み合わせることで簡単に実現できます。
以下に具体的な実装例を示します。
サンプルコード
my_list = [(44, 3, 68, 11, 5), (68, 44, 9, 5, 8), (8, 11, 2, 68, 5), (44, 68, 2, 5, 7)]
print("The list is :")
print(my_list)
K = 1
print("The value for K is ")
print(K)
my_result = []
for element in my_list:
list_length = len(element)
my_result.append(tuple(list(element)[K: list_length - K]))
print("The resultant list is :")
print(my_result)出力結果
The list is : [(44, 3, 68, 11, 5), (68, 44, 9, 5, 8), (8, 11, 2, 68, 5), (44, 68, 2, 5, 7)] The value for K is 1 The resultant list is : [(3, 68, 11), (44, 9, 5), (11, 2, 68), (68, 2, 5)]
処理の流れと解説
まず、複数のタプルを含むリストを定義し、コンソールに表示します。
トリミングの基準となる値 K を定義し、コンソールに表示します。
結果を格納するための空のリストを用意します。
元のリストを反復処理し、各タプルの長さを変数に格納します。
スライス(インデックス指定)を使って、先頭から K 番目の要素から「タプルの長さ − K」番目までの範囲にアクセスし、その部分をタプルとして再変換します。
変換したタプルを
appendメソッドで空のリストに追加していきます。すべての処理が完了したら、結果のリストをコンソールに出力します。
補足:リスト内包表記を使ったより簡潔な書き方
同じ処理は、リスト内包表記を使うことでさらに簡潔に記述できます。
my_result = [tuple(elem[K: len(elem) - K]) for elem in my_list]
このように書くことで、for ループや一時変数を減らせばコードの可読性が向上し、Pythonらしいスマートな実装になります。用途に応じて使い分けるとよいでしょう。
-
Pythonでタプルを更新する方法【連結による新規作成を解説】
タプル(tuple)はイミュータブル(変更不可)なデータ構造です。そのため、一度作成したタプルの要素を後から更新したり書き換えたりすることはできません。 ただし、既存のタプルの一部を取り出して組み合わせることで、新しいタプルを作成することは可能です。以下の例で具体的に見ていきましょう。 サンプルコード #!/usr/bin/python tup1 = (12, 34.56) tup2 = (abc, xyz) # 次のような操作はタプルでは無効です # tup1[0] = 100 # 代わりに、次のように新しいタプルを作成します tup3 = tup1 + tup2 print(tup3
-
Pythonタプル(tuple)入門:作成・操作・削除の基本をコード例で解説
Pythonにおけるタプル(tuple)は、順序付け(ordered)かつ変更不可(immutable)という特徴を持つコレクションです。変更不可であるため、一度作成したタプルに要素を追加したり削除したりすることはできません。 タプルは丸括弧 () と、最低1つのカンマ , を使って作成します。 また、タプルはリストと同じようにインデックス指定やスライシングが可能ですが、スライスの結果もタプルとして返される点に注意しましょう。 タプルの作り方 colorsTuple = (red, green, blue) print(colorsTuple) 実行結果: (red, green, blue