2016-12-15 40 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})