【发布时间】:2017-11-15 16:52:51
【问题描述】:
所以我有一个 python 列表,格式如下:
x = ['[1,2,3]', '[4,5,6,]', ...]
有没有办法将“内部列表”转换为实际列表?所以输出将是
x = [[1,2,3], [4,5,6], ....]
谢谢!
【问题讨论】:
标签: string python-2.7 list type-conversion
所以我有一个 python 列表,格式如下:
x = ['[1,2,3]', '[4,5,6,]', ...]
有没有办法将“内部列表”转换为实际列表?所以输出将是
x = [[1,2,3], [4,5,6], ....]
谢谢!
【问题讨论】:
标签: string python-2.7 list type-conversion
您可以使用 eval 将字符串评估为代码。
x = ['[1,2,3]', '[4,5,6,]']
y = [eval(s) for s in x]
【讨论】:
eval。
json 的另一个例子:
>>> import json
>>> x = ['[1,2,3]', '[4,5,6]']
>>> [json.loads(y) for y in x]
[[1, 2, 3], [4, 5, 6]]
请将您的字符串限制为仅限dicts 和lists。
【讨论】:
您可以使用ast.literal_eval 进行这种转换。您可以使用map 将转换应用于列表的每个元素。
from ast import literal_eval
x = ['[1,2,3]', '[4,5,6,]']
x = map(literal_eval, x)
print x
给予
[[1, 2, 3], [4, 5, 6]]
【讨论】:
ast.literal_eval 很棒,它可以转换多种类型,但如果列表有任何标签(即<tag> 等)会出错