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

1 投票
3 回答
2126 浏览
提问于 2025-04-16 18:14

我写了一个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)

撰写回答