collections工具库中的一些容器

1.defaultdict

#defaultdict解决使用dict最常见的问题,就是key为空的情况
#方法1:在每次get之前写一个if判断
if key in dict:
    return dict[key]
else:
    return None

data = [(1, 3), (2, 1), (1, 4), (2, 5), (3, 7)]
d = {}
for k, v in data:
    if k in d:
        d[k].append(v)
    else:
        d[k] = [v]
d

#方法2:用defaultdict
from collections import defaultdict
data = [(1, 3), (2, 1), (1, 4), (2, 5), (3, 7)]
d = defaultdict(list)
for k,v in data:
    d[k].append(v)
d    

2.Counter

#counter
words = ['apple', 'apple', 'pear', 'watermelon', 'pear', 'peach']
from collections import Counter
counter = Counter(words)
print(counter)

#要筛选topK
counter.most_common(2)

3.deque

#queue是队列,deque是双端队列
#deque常用api有append,pop,appendleft,popleft
from collections import deque
dque = deque(maxlen=10)
# 假设我们想要从文件当中获取最后10条数据
for i in f.read():
    dque.append(i)

4.namedtuple

#namedtuple
from collections import namedtuple
#这是个类
Student = namedtuple('Student',['name','score','age'])
#这是个实例
student = Student(name='xiaoming',score=99,age=20)
print(student.name)

#通过传入defaults参数来定义缺失值
#在Python的规范当中,必选参数一定在可选参数前面。所以nuamdtuple会自动右对齐
Student = namedtuple('Student', ['name', 'score', 'age'], defaults=(0, 0))

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值