如何用Python将两个列表转换为值为最大值的字典?
实现方法
方法一:基础循环遍历
直接遍历两个列表的配对元素,跳过空值,同时维护字典里每个键的最大值:
L = ["a","b","b","c","c","c"] L_02 = [1,3,2,4,6,""] result = {} for key, value in zip(L, L_02): # 跳过空字符串值 if value == "": continue # 若键不存在,或当前值更大则更新 if key not in result or value > result[key]: result[key] = value print(result) # 输出: {'a': 1, 'b': 3, 'c': 6}
方法二:分组后取最大值
借助collections.defaultdict先按键分组收集有效数值,再对每组取最大值:
from collections import defaultdict L = ["a","b","b","c","c","c"] L_02 = [1,3,2,4,6,""] # 分组存储每个键对应的所有有效数值 groups = defaultdict(list) for k, v in zip(L, L_02): if v != "": groups[k].append(v) # 生成每个键对应最大值的字典 result = {key: max(values) for key, values in groups.items()} print(result) # 输出: {'a': 1, 'b': 3, 'c': 6}
注意事项
- 确保
L_02中非空元素都是可比较的数值类型(如整数、浮点数),若存在其他类型需提前处理,避免max()或比较操作报错。
内容的提问来源于stack exchange,提问作者tientoen
相关产品推荐
相关产品推荐

