正如线程标题中所说。
我还尝试将eval()
这些列表用于我将要输入的列表,但这些列表包含字符串元素和其他(子?)列表,例如:
[Pacific, [-45,30,25], [120,59, 15]]
当提供这样的输入时eval()
,对于纯数字列表的响应非常好,但是当应用于字符串时,会NameError
为这些字符串元素发送回 a,表示它们未定义。
你需要在引号内输入你的字符串,即
["Pacific", [-45,30,25], [120,59, 15]]
当你输入它时Pacific
,python的eval()
函数将寻找一个名为的变量Pacific
,因此你得到了 NameError
您的原始输入字符串是完全有效的YAML字符串,这是一种安全、强大且 - 至少在我看来 - 序列化和反序列化数据结构的简单方法。为了读取(或保存)YAML 字符串,您可能需要获取 PyYAML:
sudo pip install pyyaml
然后,您可以完美地运行以下代码,以便将数据读入 Python:
from yaml import load
pacific = load('[Pacific, [-45,30,25], [120,59, 15]]')