0

私はこれに困惑しています:

他のリストが含まれていると思われるリストがありますが、現在、Pythonで次のようにstrとして読み取られています。

YACKETY = ["['11111', '3000', '米ドル', '0']", "['11112', '3000', '米ドル', '0']", "['11113', ' 3000', '米ドル', '0']", "['11114', '3000', '米ドル', '0']"]

しかし、YACKETY の各要素もリストであると想定されており、現在は文字列です。YACKETY のこれらの各要素を再び変更可能なリストにしたいと考えています。どうすればこれにアプローチできますか?

タプルは不変なので、YACKETY のそれらのリストの要素を可変にしたいので、それは解決策ではありません。

4

2 に答える 2

3

ast.literal_eval文字列からリストへの安全な変換に使用します。

>>> import ast
>>> YACKETY = ["['11111', '3000', 'USD', '0']", "['11112', '3000', 'USD', '0']", "['11113', '3000', 'USD', '0']", "['11114', '3000', 'USD', '0']"]
>>> converted = [ast.literal_eval(x) for x in YACKETY]
>>> converted
[['11111', '3000', 'USD', '0'], ['11112', '3000', 'USD', '0'], ['11113', '3000', 'USD', '0'], ['11114', '3000', 'USD', '0']]
于 2013-07-08T07:03:19.503 に答える
0

理想的には、これらのリストがどこで文字列に変わっているかを把握し、それが起こらないようにすることが正しいアプローチです。YACKETY の各要素は、str() に渡されたリストです。それらを文字列にしたくないので、おそらくこれらのリストが str() に渡される理由を理解し、それを修正する必要があります。

それを制御できない場合は、大きな赤いボタンが常に表示されます。

yacklist = [eval(item) for item in YACKETY]
于 2013-07-08T07:03:00.703 に答える