这个问题必须非常简单,但由于我是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])}
但我认为不一样。
如何编写代码的这一部分,以免我的语法无效?什么是合适的语法?
答案 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中使用。