python在字典中创建一键多值的几种方法以及从其他数据结构转为一键多值的字典几种方法

在字典中创建一键多值的几种方法

方法一:

  • 纯手输入(呵呵呵)
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]})

猜你喜欢

转载自blog.csdn.net/weixin_44912159/article/details/108457413