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

Pythonで区切り文字を含む文字列のリストをタプルのリストに変換する方法

区切り文字を含む文字列のリストをタプルのリストに変換したい場合、区切り文字として使う値(ここでは K)を設定し、リスト内包表記splitメソッドを組み合わせることで実現できます。

サンプルコード

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

my_list = ["33-22", "13-44-81-39", "42-10-42", "36-56-90", "34-77-91"]

print("元のリスト : ")
print(my_list)

print("ソート後のリスト : ")
my_list.sort()
print(my_list)

K = "-"
print("区切り文字(K)の値 : ")
print(K)

my_result = [tuple(int(element) for element in sub.split(K)) for sub in my_list]
print("変換結果のリスト : ")
print(my_result)

実行結果

元のリスト :
['33-22', '13-44-81-39', '42-10-42', '36-56-90', '34-77-91']
ソート後のリスト :
['13-44-81-39', '33-22', '34-77-91', '36-56-90', '42-10-42']
区切り文字(K)の値 :
-
変換結果のリスト :
[(13, 44, 81, 39), (33, 22), (34, 77, 91), (36, 56, 90), (42, 10, 42)]

コードの解説

  • まず、ハイフンで区切られた数字からなる文字列のリストを定義し、コンソールに表示します。
  • sort() メソッドを使ってリストを辞書順にソートし、その結果を表示します。
  • 区切り文字として使用する値 K(ここでは「-」)を定義して表示します。
  • リスト内包表記により各要素を反復処理し、split(K) で文字列を分割した後、int() で整数に変換し、さらに tuple() でタプル化します。
  • この処理結果を変数 my_result に代入します。
  • 最後に、変換後のリストをコンソールに出力します。

ポイント

この手法の利点は、1行のリスト内包表記で「文字列の分割」「型変換」「タプル化」まで一括して行える点です。CSV形式のようなデータや、ID・座標などの数値データを扱う際に非常に便利です。なお、要素数が異なる文字列が混在していても、それぞれの長さに応じたタプルが生成されるため、柔軟に対応できます。

  1. Pythonでリストをタプルに変換する方法:tuple()関数と*演算子の使い方

    Pythonでデータ分析を行っていると、リスト(list)をタプル(tuple)に変換する必要が生じることがあります。たとえば、後続の処理コードがタプル型を前提としており、現在のリストにはそのタプルに必要な値が格納されているようなケースです。この記事では、Pythonでリストをタプルに変換する代表的な2つの方法を、サンプルコード付きでわかりやすく解説します。方法1:tuple()関数を使う最もシンプルで直感的な方法は、組み込み関数 tuple() をリストに直接適用することです。これにより、リストのすべての要素がそのままタプルへ変換されます。サンプルコードlistA = [Mon, 2, Tu

  2. Pythonでリストをタプルに変換する方法

    Pythonでは、リストをタプルに変換するのは非常に簡単です。組み込み関数である tuple() 関数にリストを引数として渡すだけで、変換することができます。サンプルコードmy_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple)出力結果上記のコードを実行すると、以下のような出力が得られます。(1, 2, 3)解説tuple() 関数は、リストだけでなく文字列や辞書などのイテラブル(反復可能なオブジェクト)もタプルに変換できます。タプルはリストと異なりイミュータブル(変更不可)であるため、データを誤って書き換えたくない場合や、辞書