Python之列表轉字典:setdefault、defaultdict、fromkeys
阿新 • • 發佈:2018-12-26
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
的作用是:
-
-
如果 key 不存在字典中,則會用 setdefault 中的第二個引數作為該 key 的值,再返回該值。
keys = {'a', 'e', 'i', 'o', 'u' } value = [] d = dict.fromkeys(keys, value) print(d) # {'i': [], 'u': [], 'o': [], 'a': [], 'e': []}