3 回答

TA貢獻1802條經(jīng)驗 獲得超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,你會看到它有每個值的計數(shù)' code_client '。這使得這很靈活,也許在將來的某一天你需要計數(shù)'BRC'.

TA貢獻1841條經(jīng)驗 獲得超3個贊
我認(rèn)為這行不通;它如何處理此案
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 '},
您現(xiàn)在BRA在您的代碼中有兩次,但您的計數(shù)沒有更新。
相反,在字典列表中構(gòu)建一個值code_client列表,例如
client_list = [inner_dict['code_client'] for inner_dict in lds_data]
現(xiàn)在,制作一份collections.Counter這份清單。
你能從那里完成嗎?

TA貢獻1836條經(jīng)驗 獲得超3個贊
據(jù)我所知,您需要計算字典中每個代碼客戶端的數(shù)量。ct此代碼將使用每個code_client作為鍵填充字典,并將出現(xiàn)次數(shù)作為每個條目的值:
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。它有效地做我正在做的事情,但更正確和簡潔。
添加回答
舉報