1

正如线程标题中所说。
我还尝试将eval()这些列表用于我将要输入的列表,但这些列表包含字符串元素和其他(子?)列表,例如:

[Pacific, [-45,30,25], [120,59, 15]]

当提供这样的输入时eval(),对于纯数字列表的响应非常好,但是当应用于字符串时,会NameError为这些字符串元素发送回 a,表示它们未定义。

4

2 回答 2

0

你需要在引号内输入你的字符串,即

["Pacific", [-45,30,25], [120,59, 15]]

当你输入它时Pacific,python的eval()函数将寻找一个名为的变量Pacific,因此你得到了 NameError

于 2013-04-23T20:21:59.643 回答
0

您的原始输入字符串是完全有效的YAML字符串,这是一种安全、强大且 - 至少在我看来 - 序列化和反序列化数据结构的简单方法。为了读取(或保存)YAML 字符串,您可能需要获取 PyYAML:

sudo pip install pyyaml

然后,您可以完美地运行以下代码,以便将数据读入 Python:

from yaml import load
pacific = load('[Pacific, [-45,30,25], [120,59, 15]]')
于 2013-06-16T18:42:52.170 回答