Python之列表转字典:setdefaultdefaultdictfromkeys

Posted 朱兆筠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之列表转字典:setdefaultdefaultdictfromkeys相关的知识,希望对你有一定的参考价值。

setdefault

result = {}
data = [("p", 1), ("p", 2), ("p", 3),
        ("h", 1), ("h", 2), ("h", 3)]
for (key, value) in data:
    result.setdefault(key, []).append(value)


print(result)
# {‘p‘: [1, 2, 3], ‘h‘: [1, 2, 3]}

defaultdict

defaultdict是属于collections 模块下的一个工厂函数,用于构建字典对象,接收一个函数(可调用)对象为作为参数。参数返回的类型是什么,key对应value就是什么类型。

from collections import defaultdict
result = defaultdict(list)
data = [("p", 1), ("p", 2), ("p", 3),
        ("h", 1), ("h", 2), ("h", 3)]

for (key, value) in data:
    result[key].append(value)
print(result)
for k,v in result.items():
    print(k,v)
"""
defaultdict(<class ‘list‘>, {‘p‘: [1, 2, 3], ‘h‘: [1, 2, 3]})
p [1, 2, 3]
h [1, 2, 3]
"""

setdefault 的作用是:

  1. 如果 key 存在于字典中,那么直接返回对应的值,等效于 get 方法

  2. 如果 key 不存在字典中,则会用 setdefault 中的第二个参数作为该 key 的值,再返回该值。

fromkeys

keys = {a, e, i, o, u }
value = []
d = dict.fromkeys(keys, value)
print(d)
# {‘i‘: [], ‘u‘: [], ‘o‘: [], ‘a‘: [], ‘e‘: []}

 

以上是关于Python之列表转字典:setdefaultdefaultdictfromkeys的主要内容,如果未能解决你的问题,请参考以下文章

Python(92)_字典

Python 字符串/列表/元组/字典之间的相互转换

python----列表转字典

python 字典合并,字典取值,列表转字典

python 列表转字典的一些方法

python的list()函数把字典转成列表,如何保持列表原有的顺序?