程序在PyDev中工作正常,但在Ubuntu中提供了无效的语法

时间:2013-05-07 10:36:20

标签: python syntax python-2.6

这个问题必须非常简单,但由于我是Ubuntu和Python的新手,我在找到解决方案时遇到了问题。

我在Windows上使用PyDev用Python编写了一个程序。一切正常,我得到了我想要的输出。 现在我想在Ubuntu Linux上运行这个程序。我安装了所有必要的模块,然后从终端运行命令:

python home/project/bin/prog/main.py

它开始执行但后来我收到错误:

SyntaxError: invalid syntax
Line 128 
dict_values = {z[length_arr]:list(z[:length_arr]) for z in zip(*list_of_lists)} 

所以我猜我在Windows中使用的Python版本与Ubuntu中的Python版本(Python 2.6.5)之间的语法有所不同。

我试着写这样的代码:

for z in zip(*list_of_lists):
    dict_values = {z[length_arr]:list(z[:length_arr])} 

但我认为不一样。

如何编写代码的这一部分,以免我的语法无效?什么是合适的语法?

1 个答案:

答案 0 :(得分:4)

这一行:

dict_values = {z[length_arr]:list(z[:length_arr]) for z in zip(*list_of_lists)} 

是一种词典理解,直到Python 2.7才引入。您可以使用dict和生成器表达式重写它:

dict_values = dict((z[length_arr], list(z[:length_arr])) for z in zip(*list_of_lists))

可以在Python 2.6和2.7中使用。