亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

給定一個字典列表,我怎樣才能找到每個鍵出現在多少個字典中?

給定一個字典列表,我怎樣才能找到每個鍵出現在多少個字典中?

墨色風雨 2022-06-02 17:29:02
我有一個列表,dictionaries每個dictionary都以單詞為鍵,該單詞在特定文檔中出現的次數作為值?,F在我想知道如何找到dictionaries一個特定單詞出現了多少?假設我有以下詞典列表:dict1 = {'Association':5, 'Rule':2, 'Mining':3}dict2 = {'Rule':4, 'Mining':1}dict3 = {'Association':4, 'Mining':3}計算一個單詞出現在多少詞典后的結果:result_dict = {'Association':2, 'Rule':2, 'Mining':3}
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

Counter是一個dict在這里有用的子類:


from collections import Counter



dicts = [dict1, dict2, dict3]


key_counters = [Counter(dictionary.keys()) for dictionary in dicts]

start_counter = Counter()


result_dict = sum(key_counters, start_counter)


assert result_dict == {'Association': 2, 'Rule': 2, 'Mining': 3}


查看完整回答
反對 回復 2022-06-02
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

這可以通過dict理解輕松完成。

首先,從你的 dicts 中列出一個列表:


dict1 = {'Association':5,'Rule':2,'Mining':3}

dict2 = {'Rule':4,'Mining':1}

dict3 = {'Association':4,'Mining':3}


dicts = [dict1, dict2, dict3]

然后,將字典中的所有單詞與一個并集組成一組(可能是一種更簡潔的方法,但這很有效):


all_words = set().union(*[d.keys() for d in dicts])

然后,計算每個單詞出現在多少個字典中:


{k: sum([1 for d in dicts if k in d.keys()]) for k in all_words}

這從您的示例返回了所需的輸出。


查看完整回答
反對 回復 2022-06-02
  • 2 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號