Python实现:将公司与职业列表合并为带职业计数的字典
解决方案
方法一:基础字典实现(适合理解底层逻辑)
不用额外导入库,纯靠字典操作实现计数:
info = {} # 直接遍历配对后的公司和职业 for company_name, job in zip(company, profession): # 先确保当前公司有对应的职业计数字典 if company_name not in info: info[company_name] = {} # 统计当前职业的次数 if job in info[company_name]: info[company_name][job] += 1 else: info[company_name][job] = 1
运行后就能得到你要的嵌套计数结构,示例输出:
{ "CompanyA": {"Engineer": 3, "Group Leader": 1, "Administrator": 1}, "CompanyB": {"Engineer": 1, "Group Leader": 4} }
方法二:用collections工具类(更简洁高效)
Python标准库的collections模块有专门做计数和默认字典的工具,代码更简洁:
from collections import defaultdict, Counter # 一步到位完成分组+计数 info = defaultdict(Counter) for comp, job in zip(company, profession): info[comp][job] += 1 # 可选:把defaultdict转成普通字典 info = dict(info)
defaultdict(Counter)会自动给新出现的公司创建空的计数对象,不用手动判断- 直接对对应职业执行
+=1即可完成计数,省去多层判断逻辑
内容的提问来源于stack exchange,提问作者MSS
相关产品推荐
相关产品推荐

