freq
是對字典的引用,如您所說。
myHeap
使用list comprehension構建,因此它是一個列表。列表理解的一般形式是:
[ expr for x in iterable ]
所以myHeap
將是一個列表,其中的每個元素是與第一元件是相應的字典條目的值的列表,並且所述第二元件是另一個列表其第一個元素是字典的相應鍵,第二個元素是""
。
在給定的代碼示例中沒有集合。
你可以看到這方面的工作,像這樣(我編輯的可讀性數輸出):
>>> [ symbol for symbol, pct in freq.items() ]
['a', 'i', 'e', 't']
>>> from pprint import pprint # Yay, pretty printing
>>> pprint([ [pct, symbol] for symbol, pct in freq.items() ])
[[0.0820011, 'a'],
[0.0768052, 'i'],
[0.1241670, 'e'],
[0.0969225, 't']]
>>> pprint([ [pct, [symbol, ""]] for symbol, pct in freq.items() ])
[[0.0820011, ['a', '']],
[0.0768052, ['i', '']],
[0.1241670, ['e', '']],
[0.0969225, ['t', '']]]
需要注意的是,因爲在Python字典不保留其元素的順序,也不能保證什麼樣的順序freq
元素將最終在myHeap
中。
'頻率= exe_Data)'? 'SyntaxError'。 – 2012-04-15 23:13:47