Python 基础—— collections 模块

import collections

0. namedtuple

  • 简单使用:

    # 返回的 User 为类型,而不是实例
    User = namedtuple('User', ['name', 'sex', 'age'])
    	
    # 对类型 User 进行实例化
    user = User(name='zhang', sex='male', age=26)
    	# User._make(['zhang', 'male', 26])
    user.name
    user.sex
    user.age
    
  • 高级应用:

    Dataset = namedtuple('Dataset', ['data', 'target'])
    Datasets = namedtuple('Datasets', ['train', 'test', 'validation'])
    

1. defaultdict:存在默认值的字典

from collections import defaultdict
# 颇有一些模板类的感觉

>>> values = defaultdict(float)
>>> digit_counts = defaultdict(int)
>>> digit_counts[0]
0
>>> digit_counts[100]
0

2. Counter(计数):继承自 Dict

from collections import Counter

统计一个序列中各自元素出现的次数(被引用):

from collections  import defaultdict
M = [2, 2, 0, 5, 3, 5, 7, 4]
count = defaultdict(int)
for i in M:
    count[i] += 1

有了 Counter ,我们就可避免 for 循环,可将上述代码改造为:

M = [2, 2, 0, 5, 3, 5, 7, 4]
count = Counter(M)
                    # count:Counter({0: 1, 2: 2, 3: 1, 4: 1, 5: 2, 7: 1})

常见成员函数:

  • 继承自 Dict,是一个特殊的字典;
    • keys()
    • values()
    • items()
  • most_common(k):返回由 tuple 构成的 list,tuple 为二元元组,

3. 使用 Counter 统计单词出现的次数(WordCount)

from collections import Counter
words = "hello world hello China";
splited = words.split(" ")
count = Counter(splited)
					# Counter({'hello': 2, 'china': 1, 'world': 1})

4. collections.abc

python 3 中新增;

def sequence(iterable):
	return iterable if isinstance(iterable, collections.abc) else tuple(iterable)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值