3 回答
TA贡献1802条经验 获得超6个赞
使用Collections.Counter:
from collections import Counter
d = {u'BRASIL_ALIMEN ': {' code_client ': u'BRA', 'city': u'SAO PAULO '},
u'BRASIL_CARROS ': {' code_client ': u'BRC', 'city': u'PARANA '}}
c = Counter(v[' code_client '] for _, v in d.items())
print(c['BRA'])
# 1
如果你打印c,你会看到它有每个值的计数' code_client '。这使得这很灵活,也许在将来的某一天你需要计数'BRC'.
TA贡献1841条经验 获得超3个赞
我认为这行不通;它如何处理此案
u'BRASIL_ALIMEN ': {' code_client ': u'BRA', 'city': u'SAO PAULO '},
u'BRASIL_CARROS ': {' code_client ': u'BRC', 'city': u'PARANA '},
u'BRASIL_OTRA ': {' code_client ': u'BRA', 'city': u'TERRA NADA '},
您现在BRA在您的代码中有两次,但您的计数没有更新。
相反,在字典列表中构建一个值code_client列表,例如
client_list = [inner_dict['code_client'] for inner_dict in lds_data]
现在,制作一份collections.Counter这份清单。
你能从那里完成吗?
TA贡献1836条经验 获得超3个赞
据我所知,您需要计算字典中每个代码客户端的数量。ct此代码将使用每个code_client作为键填充字典,并将出现次数作为每个条目的值:
ct = {}
for _, value in lds_data.items():
if value['code_client'] in ct:
ct [value['code_client']] += 1
else:
ct [value['code_client']] = 1
编辑:我实际上建议使用Austin's answer。它有效地做我正在做的事情,但更正确和简洁。
添加回答
举报