在字典中创建一键多值的几种方法
方法一:
- 纯手输入(呵呵呵)
dic = {'a': [1, 2, 3]}
方法二:
- 先创建字典,再添加元素
dic = {}
dic['a'] = []
dic['a'].append(1)
dic['a'].append(2)
dic['a'].append(3)
print(dic)
# Out:{'a': [1, 2, 3]}
方法三:
- 导入
collection
库中的defaultdict
方法,好处不需要先创建一个空列表
from collections import defaultdict
dic = defaultdict(list)
dic['a'].append(1)
dic['a'].append(2)
dic['a'].append(3)
print(dic)
# Out:defaultdict(<class 'list'>, {'a': [1, 2, 3]})
其他数据结构转为一键多值的字典几种方法
原始数据:
pairs = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('one', 11)]
转化成一键多值的字典形式:
{'one': [1,11], 'two': [2], 'three': [3], 'four': [4]}
方法一:
- 一般都使用这个方法,其实看着有点杂乱,以后试着用方法二
pairs = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('one', 11)]
d = {}
for key, value in pairs:
if key not in d:
d[key] = []
d[key].append(value)
print(d)
# Out:{'one': [1, 11], 'two': [2], 'three': [3], 'four': [4]}
方法二:
- 这个就看着很舒服了
from collections import defaultdict
pairs = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('one', 11)]
d = defaultdict(list)
for key, value in pairs:
d[key].append(value) # 省去了if判断语句
print(d)
# Out:defaultdict(<class 'list'>, {'one': [1, 11], 'two': [2], 'three': [3], 'four': [4]})