python设置默认字典(setdefault collections.defaultdict)

python设置默认字典(setdefault collections.defaultdict)setdefaultgetcollectionsdefaultdictsetdefaultdict.setdefault(key,default=None)如果键不存在于字典中,将会添加新的键并将值设为默认值(改变了字典)。如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。stu=[(‘wang’,1),(‘zhang’,4),(‘fu’,2),(‘li’,

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注