0

この質問は非常に簡単なはずですが、私は 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 2.6.5) で使用している Python のバージョンでは、構文に違いがあると思います。

私は次のようなコードを書いてみました:

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

しかし、私は同じではないと思います。

無効な構文を取得しないように、コードのこの部分をどのように記述できますか? 適切な構文は何でしょうか?

4

1 に答える 1

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 の両方で動作します。

于 2013-05-07T10:41:30.613 に答える