Python中多型号到单一厂商的高效映射方法问询
更高效的型号-厂商映射实现方法
你提到的“用型号当键、厂商当值”的反向字典思路,确实是比嵌套循环更优的方案,哪怕当前厂商和型号数量在10-100这个区间,也能让代码更简洁、查询更快。
具体怎么做
1. 先转成反向映射字典
先把现有的厂商字典倒过来,让每个型号直接对应到所属厂商:
manufacturer_dict = { "ASUS": ["ROG", "TUF"], "ACER": ["Predator", "Nitro"], "Lenovo": ["Legion"] } # 构建反向字典:型号→厂商 model_to_brand = {} for brand, models in manufacturer_dict.items(): for model in models: model_to_brand[model] = brand
2. 一键生成结果列表
有了这个反向字典后,直接遍历型号列表查字典就行,一行代码搞定:
model_name = ["Legion", "ROG", "Nitro", "TUF", "Predator"] manufacturer_list = [model_to_brand.get(model, "") for model in model_name]
用get方法是为了和你原来的逻辑一致——如果某个型号找不到对应厂商,就返回空字符串。
为啥这个方案更好
- 原嵌套循环:每查一个型号,都要逐个遍历厂商的型号列表,数据量越大,重复遍历的次数越多,效率越低。
- 反向字典方案:只需要先花一次功夫把字典转好,之后每个型号都是直接查表,速度快得多,代码也更清爽。哪怕以后厂商和型号数量翻倍,查询效率也不会受影响。
哪怕当前数据规模小,这个写法也更易维护——以后加新厂商或型号,只需要更新原manufacturer_dict,再重新生成反向字典就行,不用改查询逻辑。
内容的提问来源于stack exchange,提问作者rethik nirmal
相关产品推荐
相关产品推荐

