计算值在字典键中重复的次数

我有一个从数据库中的选择创建的字典,我需要的是从该字典生成一个指标


字典


 # create database dictionary with values

 lds_data = {}

 for lds_item in db_result:

 lds_data.update ({lds_item [1]: {'code_client': lds_item [0], 'city': lds_item [2]}})

字典的退出:


 u'BRASIL_ALIMEN ': {' code_client ': u'BRA', 'city': u'SAO PAULO '},

 u'BRASIL_CARROS ': {' code_client ': u'BRC', 'city': u'PARANA '}

指标示例:


code_client: BRA在字典中出现1x


加起来:


我需要计算在KEY =中重复值的次数*code_client*


我试图这样做:


 ct = {}

 for key in lds_data:

     ct ['code_client'] = len (lds_data [key] ['code_client'])


慕斯709654
浏览 134回答 3
3回答

呼啦一阵风

使用Collections.Counter:from collections import Counterd = {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'.

偶然的你

我认为这行不通;它如何处理此案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这份清单。你能从那里完成吗?

米脂

据我所知,您需要计算字典中每个代码客户端的数量。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。它有效地做我正在做的事情,但更正确和简洁。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python