【发布时间】:2015-06-23 17:49:06
【问题描述】:
我有一个包含数千个表单元素的列表,如下所示:
pixels = ['(112, 37, 137, 255)', '(129, 39, 145, 255)', '(125, 036, 138, 255)' ...]
我正在尝试使用 ast.literal_eval 将这些字符串元素转换为元组,但遇到诸如前导零之类的事情(例如,在显示的第三个元组字符串中)时出现错误 SyntaxError: invalid token。
pixels = [ast.literal_eval(pixel) for pixel in pixels]
什么是处理此类事情并将此字符串列表评估为元组列表的好方法?
【问题讨论】:
-
@BhargavRao Python 3 中的八进制数不支持 0xx 格式。
-
@BhargavRao 你好。具体错误为
SyntaxError: invalid token。我刚刚将其添加到问题中。 -
@BhargavRao Python 2.x 中的前导
0是八进制文字。在 Python 3.x 中不再允许这样做。例如055是十进制值45的八进制。 -
我正在等待 OP 澄清他使用的是 2.x 还是 3.x(因为它在 2x 中变为八进制)。谢谢。
-
顺便说一句,你可能需要找出产生这个的东西,弄清楚为什么它输出
37和39但036,以及差异是否意味着什么。
标签: python string tuples abstract-syntax-tree literals