SyntaxError:使用Python 2.6从列表构建dict时语法无效

时间:2011-05-24 13:12:12

标签: python

我用Python2.7创建了一个Python脚本,它运行正常。但是,当我使用Python2.6运行相同的脚本时,我收到“SyntaxError:invalid syntax”错误。

经过调查,问题似乎与for循环有关。

l1 = [["a1", "a2"], ["b1", "b2"]]
print {item[0]:item[1] for item in l1}

当我使用Python 2.7运行上面的代码时,我得到了以下输出:

{'a1': 'a2', 'b1': 'b2'}

当我使用Python 2.6运行相同的代码时,我遇到以下错误:

>>> l1 = [["a1", "a2"], ["b1", "b2"]]
>>> print {item[0]:item[1] for item in l1}
  File "<stdin>", line 1
    print {item[0]:item[1] for item in l1}
                             ^
SyntaxError: invalid syntax
>>>

感谢任何帮助。

的问候,
阿伦

3 个答案:

答案 0 :(得分:4)

试试这个:

print dict(item for item in l1)

编辑您的评论:如果您想明确选择项目,请将它们包装在元组中:

print dict((item[1], item[4]) for item in l1)

答案 1 :(得分:3)

Python 2.6中没有字典理解。有关如何在代码中解决此问题,请参阅Space_C0wb0y's answer

答案 2 :(得分:2)

试试这个:

print dict([tuple(i) for i in l1])