为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯709654 2022-05-19 16:08:30
我有一个从数据库中的选择创建的字典,我需要的是从该字典生成一个指标字典 # 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'])
查看完整描述

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'.


查看完整回答
反对 回复 2022-05-19
?
偶然的你

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这份清单。


你能从那里完成吗?


查看完整回答
反对 回复 2022-05-19
?
米脂

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。它有效地做我正在做的事情,但更正确和简洁。


查看完整回答
反对 回复 2022-05-19
  • 3 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信