我有dict样本:
dictsample具有此结构dictsample.update({key: dif_k})
,而dif_k具有此结构dif_k.update({k:v})
dictsample:
{Object1 : { size : 14, cell: G, capacity : 35}, Object2 : { size : 14, load : 2}, Object3 : { size : 12, cell : F, load : 3, throughput : 55}, ...}
我需要这样的输出:
{Object1 : 3, Object2 : 2, Object3 : 4, ...}
我尝试过的代码:
ct = {}
for key, dif_k in dictsample.iteritems():
for k, v in dif_k.iteritems():
dictcounter = k.count(k)
ct.update({key:dictcounter})
我得到的只是: {Object1:1,Object2:1,Object3:1,...}
答案 0 :(得分:3)
尝试类似这样的dict理解:
{k: len(v) for k,v in dictsample.iteritems()}
答案 1 :(得分:1)
你能不能做得更简单一些。不会有这样的事情吗?
ct = {}
for key in dictsample:
ct[key] = len(dictsample[key])
答案 2 :(得分:1)
你也可以这样做:
the_list = {i:len(dictsample[i]) for i in dictsample.keys()}
这种方法不需要iteritems,而且更短。
编辑:
要通过数字元素访问值,请尝试以下操作:
the_list = {len(dictsample[i]):i for i in dictsample.keys()}