Pythonでタプルのリスト内の要素の符号を変更する方法
タプルのリスト内にある各要素の符号を変更したい場合、シンプルな反復処理(イテレーション)と、組み込み関数「abs」、そして「append」メソッドを組み合わせることで簡単に実現できます。
サンプルコード
以下にその実装例を示します。
my_list = [(51, -11), (-24, -24), (11, 42), (-12, 45), (-45, 26), (-97, -4)]
print("リストの内容:")
print(my_list)
my_result = []
for sub in my_list:
my_result.append((abs(sub[0]), -abs(sub[1])))
print("処理結果:")
print(my_result)出力
リストの内容: [(51, -11), (-24, -24), (11, 42), (-12, 45), (-45, 26), (-97, -4)] 処理結果: [(51, -11), (24, -24), (11, -42), (12, -45), (45, -26), (97, -4)]
解説
まず、複数のタプルを含むリストを定義し、コンソールに表示します。
次に、結果を格納するための空のリストを用意します。
元のリストを1つずつ反復処理していきます。
組み込み関数「
abs」を使って、負の値の絶対値を取得します。この例では、タプルの最初の要素は常に正(abs)、2番目の要素は常に負(-abs)となるように符号を統一しています。変換したタプルを「
append」メソッドで結果リストに追加します。最後に、処理結果をコンソールに出力して完了です。
補足:リスト内包表記でより簡潔に書く方法
上記のコードは、Pythonのリスト内包表記を使えば、さらに簡潔に記述できます。
my_result = [(abs(a), -abs(b)) for a, b in my_list]
この書き方では、for文とappendの処理を1行にまとめられるため、コードがすっきりし可読性も向上します。また、タプルのアンパッキング(a, b)を利用することで、インデックス指定よりも直感的に各要素へアクセスできる点もメリットです。
-
Pythonで特定の文字で始まるリスト要素を検索する方法
この記事では、Pythonのリストから「特定の文字で始まる要素」だけを抽出する方法を、2つの異なるアプローチで解説します。 方法1:インデックスとlower()を組み合わせる まず紹介するのは、lower()関数とインデックス([0])を組み合わせる方法です。lower()を使うことで、大文字・小文字を区別せずに比較できるのがポイントです。リスト内包表記の中で各要素の先頭文字(インデックス0)を取り出し、テスト用の文字と照合します。 サンプルコード listA = [Mon, Tue, Wed, Thu] # 比較に使う文字 test = T # 元のリストを表示 print(Given
-
Pythonでタプルのリストをリストのリストに変換する方法
Pythonでは、要素がタプルになっているリストを扱うことがあります。その後のデータ処理において、タプルのままでは扱いにくいケースも多く、リスト形式に変換してから処理を行いたい場面が出てきます。この記事では、タプルのリストをリストのリスト(ネストされたリスト)に変換する代表的な2つの方法を、具体的なコード例とともに解説します。方法1:リスト内包表記を使う最もシンプルで直感的なのが、リスト内包表記を使う方法です。forループで各要素(タプル)を1つずつ取り出し、list()関数を適用することで、新しいリストを作成していきます。コード例listA = [(Mon, 3), (Wed, 4), (F