2016-12-15 58 views
0

新的python /編程,並在字典組成。 (蟒蛇3)get()裏面的字典組合

是否有可能在你正在創建的字典中使用字典組合中的get方法?

e.g. d = {key: d.get(key,0) + 1 for key in some_list} 

隨意提供實現的例子的一個更好的辦法,但我的理解真的有興趣,如果用得到,你所創建的字典是可能的/有效。

+0

這是不可能的,因爲字典先被創建,然後被分配到名稱'd'。因此,在它的創建過程中(即在字典理解中),「d」還不存在,你會得到一個NameError(假設你沒有在其中創建一個名爲'd'的不同變量過去) – inspectorG4dget

+0

@ inspectorG4dget感謝有關發生在幕後的最新信息:) –

回答

0

不,不可能。如果你想計數的字典,使用collections.Counter字典子類:

import collections 

counts = collections.Counter(some_list) 
0

Python已經專門類交給這樣的問題 - collections.Counter

import collections 
seq = ['a', 'b', 'b', 'c'] 
d = collections.Counter(seq) # Counter({'b': 2, 'a': 1, 'c': 1})