3

重複の可能性:
リストを表す文字列を実際のリスト オブジェクトに変換する

次のような文字列があります。

"[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]"

対応するリストに簡単に解析するにはどうすればよいですか?

reモジュールや分割", "などを使用できることはわかっています。

それを行うための既存の機能はありますか?

4

3 に答える 3

5

使用ast.literal_eval():

>>> import ast
>>> s = "[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]"
>>> ast.literal_eval(s)
[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]
于 2012-12-18T20:37:44.483 に答える
1
>>> l = "[81, 102, 114, 132]"
>>> map(int, l.strip("[]").split(", "))
[81, 102, 114, 132]

mapPython 3+ の場合、イテレータからリストを作成する必要があります:

>>> l = "[81, 102, 114, 132]"
>>> list(map(int, l.strip("[]").split(", ")))
[81, 102, 114, 132]
于 2012-12-18T20:35:52.833 に答える
0

最も直接的な方法は、eval()を使用することです。ただし、セキュリティ上の問題が発生する可能性があるため、これは悪い習慣と見なされることがよくあります。

于 2012-12-18T20:37:19.490 に答える