【发布时间】:2017-11-17 02:04:53
【问题描述】:
有人知道将给定列表转换为所需格式的简单方法吗?
给定:
['[[2.1, 3.7], [5.5, -1.3]]']
所需格式:
[[2.1, 3.7], [5.5, -1.3]]
提前致谢
【问题讨论】:
标签: python python-3.x casting abstract-data-type
有人知道将给定列表转换为所需格式的简单方法吗?
给定:
['[[2.1, 3.7], [5.5, -1.3]]']
所需格式:
[[2.1, 3.7], [5.5, -1.3]]
提前致谢
【问题讨论】:
标签: python python-3.x casting abstract-data-type
试试这个:
import ast
lst = ['[[2.1, 3.7], [5.5, -1.3]]']
ast.literal_eval(lst[0])
=> [[2.1, 3.7], [5.5, -1.3]]
【讨论】:
我认为json.loads 非常适合这个特定的,即:
import json
lst = ['[[2.1, 3.7], [5.5, -1.3]]']
lst = [json.loads(lst[0])]
print(lst)
【讨论】:
看起来你有一个包含单个元素的列表,它是一个字符串,你想要评估字符串并返回它,丢弃外部列表。如果是这样,那么您可以使用来自ast 的literal_eval 来安全地评估表达式:
import ast
s = ['[[2.1, 3.7], [5.5, -1.3]]']
t = s[0]
ast.literal_eval(t)
计算结果为:
[[2.1, 3.7], [5.5, -1.3]]
【讨论】:
这应该很容易做到:
eval(x[0])
【讨论】:
eval() 可能是邪恶的。是的,在这种情况下没问题,但仍应使用 ast.literal_eval() 代替