SyntaxError:在使用Python 2.6从列表构建字典时语法无效
我写了一个Python脚本,用的是Python2.7,运行得很好。但是,当我用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
>>>
任何帮助都非常感谢。
祝好,
Allen
3 个回答
2
试试这个:
print dict([tuple(i) for i in l1])
3
在Python 2.6中,字典推导式是不可用的。想知道怎么在代码中解决这个问题,可以看看Space_C0wb0y的回答。
4
试试这个:
print dict(item for item in l1)
关于你评论的补充:如果你想明确选择一些项目,可以把它们放在一个元组里:
print dict((item[1], item[4]) for item in l1)