模块_collections包_defaultdict
# 创建默认值字典 defaultdict()中传入的参数 必须是可被调用的 callable
from collections import defaultdict
dd = defaultdict(lambda: 'V3') # lambada表达式 【lambada 参数: 返回结果】 无参数的lambada表达式
dd['key1'] = 'V1' dd['key2'] = 'V2'
print(dd['key3']) # 新增字典元素,键'key3' 对应的值采用默认值字典中的'V3' print(dd) # # 创建默认值字典 defaultdict()中传入的参数 必须是可被调用的 callable
# 解法一
lst = [11, 22, 33, 44, 55, 66, 77, 88, 99] dic = {} for el in lst: if el > 66: if 'k1' not in dic: dic.setdefault('k1', []) else: dic['k1'].append(el) else: if 'k2' not in dic: dic.setdefault('k2', []) else: dic['k2'].append(el) print(dic) # {'k2': [22, 33, 44, 55, 66], 'k1': [88, 99]}
# 解法二
from collections import defaultdict values = [11, 22, 33, 44, 55, 66, 77, 88, 99] dd = defaultdict(list) # 此处传入的参数 必须是可被调用的 callable for v in values: if v > 66: dd['k1'].append(v) else: dd['k2'].append(v) print(dd) # defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99]})