您的位置:首页 > 编程语言 > Python开发

python3 Collections 模块的Counter类和namedtuple类

2018-03-23 15:44 447 查看
Counter类: http://www.pythoner.com/205.html namedtuple类:https://blog.csdn.net/kongxx/article/details/51553362Counter类用于计数器的应用,namedtuple可以理解为C中的struct,带名字的元组。摘要:Counter类的创建>>> c = Counter() # 创建一个空的Counter类>>> c = Counter('gallahad') # 从一个可iterable对象(list、tuple、dict、字符串等)创建>>> c = Counter({'a': 4, 'b': 2}) # 从一个字典对象创建>>> c = Counter(a=4, b=2) # 从一组键值对创建计数器的更新(update)
>>> c = Counter('which')
>>> c.update('witch')  # 使用另一个iterable对象更新
>>> c['h']
3
>>> d = Counter('watch')
>>> c.update(d)  # 使用另一个Counter对象更新
>>> c['h']
4
elements()方法>>> c = Counter(a=4, b=2, c=0, d=-2)>>> list(c.elements())['a', 'a', 'a', 'a', 'b', 'b']most_common()方法
>>> c = Counter('abracadabra')
>>> c.most_common()
[('a', 5), ('r', 2), ('b', 2), ('c', 1), ('d', 1)]
>>> c.most_common(3)
[('a', 5), ('r', 2), ('b', 2)]
Counter类常用操作
sum(c.values())  # 所有计数的总数
c.clear()  # 重置Counter对象,注意不是删除
list(c)  # 将c中的键转为列表
set(c)  # 将c中的键转为set
dict(c)  # 将c中的键值对转为字典
c.items()  # 转为(elem, cnt)格式的列表
Counter(dict(list_of_pairs))  # 从(elem, cnt)格式的列表转换为Counter类对象
c.most_common()[:-n:-1]  # 取出计数最少的n-1个元素
c += Counter()  # 移除0和负值
namedtuple类:通过下列例子
from collections import namedtuple# 定义一个namedtuple类型User,并包含name,sex和age属性。User = namedtuple('User', ['name', 'sex', 'age'])# 创建一个User对象user = User(name='kongxx', sex='male', age=21)# 也可以通过一个list来创建一个User对象,这里注意需要使用"_make"方法user = User._make(['kongxx', 'male', 21])print user# User(name='user1', sex='male', age=21)# 获取用户的属性print user.nameprint user.sexprint user.age# 修改对象属性,注意要使用"_replace"方法user = user._replace(age=22)print user# User(name='user1', sex='male', age=21)# 将User对象转换成字典,注意要使用"_asdict"print user._asdict()# OrderedDict([('name', 'kongxx'), ('sex', 'male'), ('age', 22)])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: