Python语言深入:collections模块深入(2)

5,OrderedDict

OrderedDict,顾名思义,是保存顺序关系的字典。像列表一样,OrederedDict会存储每个元素创建时的具体位置。这样我们能够在OrderedDict的对象创建完毕后,安装创建时的顺序来访问和遍历其中的元素。这在那些关心字典元素顺序的些场合有它的作用。比如,下面的这个例子。

from collections import OrderedDict

d = OrderedDict()
d['foo'] = 1
d['bar'] = 2
d['spam'] = 3
d['grok'] = 4

# 将会输出 "foo 1", "bar 2", "spam 3", "grok 4"
for key in d:
    print(key, d[key])

需要注意的是,OrderedDict在底层的实现是一个双向链表,这使得它实际上要比普通的字典类型的对象要多消耗一倍的存储空间。所以如果你想要创建一个超大的OrderedDict对象时,你需要考虑到它的空间开销值不值得你这样做。

 

6,defaultdict

defaultdict 也是一种增强的字典数据类型。你可以指定其默认的类型,这使得你可以在添加元素时按默认的类型来创建元素并添加值,而不需要设置其默认值。例如:

from collections import defaultdict
d = defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(4)

print(d)
# 输出:defaultdict(<class 'list'>, {'a': [1, 2], 'b': [4]})


d = defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['b'].add(4)
print(d)
# 输出:defaultdict(<class 'set'>, {'a': {1, 2}, 'b': {4}})

 

转载于:https://www.cnblogs.com/python-data-dev/articles/9855662.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值