1. ホーム
  2. python

文字列からタプルをパースする?

2023-10-23 12:53:56

質問

例えば、タプルがあるべき姿と同じ形の文字列があるとします。 "(1,2,3,4,5)" . これを実際のタプルに変換する最も簡単な方法は何でしょうか?私がしたいことの例は次のとおりです。

tup_string = "(1,2,3,4,5)"
tup = make_tuple(tup_string)

実行するだけ tuple() を実行するだけでは、全体が一つの大きなタプルになります。一方、私がやりたいことは、文字列をタプルとして理解することです。正規表現を使えばいいのは分かっているのですが、もっとコストのかからない方法があればと思います。アイデアはありますか?

どのように解決するのですか?

それは 既に存在する !

>>> from ast import literal_eval as make_tuple
>>> make_tuple("(1,2,3,4,5)")
(1, 2, 3, 4, 5)

コーナーケースに注意すること

>>> make_tuple("(1)")
1
>>> make_tuple("(1,)")
(1,)

入力フォーマットがここでいうPythonと異なる場合、そのケースを個別に処理する必要があります。 tuple(int(x) for x in tup_string[1:-1].split(',')) .