1
我在看別人的代碼,以適應它爲我自己here,我在第44行過這個傳來:Dictionary for ... in ... in it?
scores = {word: tfidf(word, blob, bloblist) for word in blob.words}
當我嘗試這在Python 2.7.6,我在得到一個語法錯誤單詞for
後的空格。爲什麼無效語法和代碼中究竟發生了什麼?
我在看別人的代碼,以適應它爲我自己here,我在第44行過這個傳來:Dictionary for ... in ... in it?
scores = {word: tfidf(word, blob, bloblist) for word in blob.words}
當我嘗試這在Python 2.7.6,我在得到一個語法錯誤單詞for
後的空格。爲什麼無效語法和代碼中究竟發生了什麼?
字典理解爲backported only to 2.7 not to 2.6, from 3.1
字典並設置內涵({I:* 2對於i的範圍(3)})。
因此,在Python 2.6當量會,
dict((word, tfidf(word, blob, bloblist)) for word in blob.words)
但通過列表會稍快,
dict([(word, tfidf(word, blob, bloblist)) for word in blob.words])
這等同於'字典((文字,TFIDF( word,blob,bloblist))爲blob.words中的單詞)' – michaelmeyer
該代碼適合我。你確定你在Python 2.7上運行過嗎?一個字典理解會在Python 2.6或更早版本中引發SyntaxError,但不會在2.7+中引發。 –
@AshwiniChaudhary我在2.7,但它可能只是一個過時的崇高文本插件 – ZuluDeltaNiner