リストの文字列表現をリストに変換する方法 質問する

リストの文字列表現をリストに変換する方法 質問する

次のようなリストの文字列表現を に変換する最も簡単な方法は何かと思いましたlist

x = '[ "A","B","C" , " D"]'

ユーザーがカンマの間にスペースを入れたり、引用符の中にスペースを入れたりする場合でも、それを処理して次のように変換する必要があります。

x = ["A", "B", "C", "D"] 

strip()andを使ってスペースを削除しsplit()、非英字をチェックできることは知っています。しかし、コードが非常に不格好になっていました。私が知らない簡単な関数があるのでしょうか?

ベストアンサー1

>>> import ast
>>> x = '[ "A","B","C" , " D"]'
>>> x = ast.literal_eval(x)
>>> x
['A', 'B', 'C', ' D']
>>> x = [n.strip() for n in x]
>>> x
['A', 'B', 'C', 'D']

ast.literal_eval:

Python リテラルまたはコンテナ表示のみを含む式ノードまたは文字列を評価します。提供される文字列またはノードは、文字列、バイト、数値、タプル、リスト、辞書、セット、ブール値、および の Python リテラル構造のみで構成できますNoneEllipsis

これは、値を自分で解析する必要なく、Python 値を含む文字列を評価するために使用できます。演算子やインデックス付けを含む、任意の複雑な式を評価することはできません。

おすすめ記事