setdefault
dict.setdefault(key, default=None)
如果键不存在于字典中,将会添加新的键并将值设为默认值(改变了字典)。如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
stu = [('wang', 1), ('zhang', 4), ('fu', 2), ('li', 3), ('fu', 7), ('wang', 2), ('wang', 8)]
stu_set = {}
for k, v in stu:
stu_set.setdefault(k, set()).add(v)
for k, v in stu_set.items():
print(k, v)
# output
zhang {
4}
fu {
2, 7}
li {
3}
wang {
8, 1, 2}
get
get()方法返回给定键的值。如果键不可用,则返回默认值(没有改变字典)。
dict.get(key, default=None)
collections defaultdict
defaultdict() 返回一个字典,会自动给每个键(key)赋一个初始值
collections.default([default_factory[, ...]])
使用工厂方法default_factory给所有key对应的value赋初始值,这些工厂方法有int(), long(), float(), complex(),str(), unicode(), basestring(),
list(), tuple(),dict(),bool()
set(), frozenset(),object(), classmethod()
staticmethod(),super(),property(),file()
import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = collections.defaultdict(list)
for k, v in s:
d[k].append(v)
list(d.items())
如果不用工厂方法,也可以使用自定义方法
counts = collections.defaultdict(lambda : [0, 0, 0])
例如,可以让每个vlaue的初始值为10
import collections
d = collections.defaultdict(lambda :10)
a = [('a', 1), ('b', 3), ('c', 2), ('b', 6), ('a', 7)]
for k, v in a:
d[k] += v
for k, v in d.items():
print(k, v)
# output
c 12
b 19
a 18
参考资料
1 collections defaultdict(默认字典)
2 Python collections.defaultdict() 与 dict的使用和区别
3 Python 字典(Dictionary) setdefault()方法
4 Python collections.defaultdict 笔记
今天的文章python设置默认字典(setdefault collections.defaultdict)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9746.html