2

そこで、より大きなプロジェクトの一部として次のコード スニペットを使用しました。

with open(file) as fin:
    rows = ( line.split() for line in fin )
    d = { row[0]:row[1:] for row in rows }

タブ区切り入力の場合、file. 私の個人用マシンでは問題なく動作しますが、共有コンピューティング クラスタに移動すると、3 行目のd = { row[0]:row[1:] for row in rows }. 私はその理由を理解しようとしてきました。

私が思いついたのは、Pythonのバージョンの違いだけでした。私は 2.7.3 を実行しており、共有クラスターは 2.6.1 を実行していますが、それはまったく合理的ではないようです。皆さんのアドバイスに感謝します。

エラーのテキストは次のとおりです (クラスター上の Python 2.6.1 の場合)。

File "Alphabet.py", line 22
  d = { row[0]:row[1:] for row in rows }
                         ^
SyntaxError: invalid syntax
4

1 に答える 1

6

dictの理解はPython2.7の新機能です。PEP274を参照してくださいhttp://www.python.org/dev/peps/pep-0274/

それから:

>>> dict([(i, chr(65+i)) for i in range(4)])

意味的には同等です

>>> {i : chr(65+i) for i in range(4)}

2.7より前のPythonとの互換性が必要な場合は、最初のバージョンを使用してください。

于 2013-02-16T23:13:42.617 に答える