Python,collections模块

对collections相关方法进行学习和测试:

# coding=utf-8

"""
testCollections.py
对collections集合模块进行实践和测试
"""

import collections
import unittest

class TestCollections(unittest.TestCase):

    def test_namedtuple(self):
        """
        namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
        用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用
        """
        job_type = collections.namedtuple(‘job_type‘, [‘H‘, ‘M‘, ‘L‘])
        job = job_type(‘高‘, ‘中‘, ‘低‘)
        self.assertEqual(‘高‘, job.H)
        self.assertEqual(‘中‘, job.M)
        self.assertEqual(‘低‘, job.L)
        point = collections.namedtuple(‘point‘, [‘x‘, ‘y‘])
        p = point(1,2)
        self.assertEqual(1, p.x)
        self.assertEqual(2, p.y)

    def test_deque(self):
        """
        deque是为了高效实现插入和删除操作的双向列表
        """
        que = collections.deque([‘A‘,1,3,"B"])
        # 添加
        que.append("M")
        self.assertEqual("M", que[-1])
        # 删除
        res = que.pop()
        self.assertEqual("M", res)
        # 从左边添加元素
        que.appendleft("L")
        self.assertEqual("L", que[0])
        # 从左边删除
        self.assertEqual("L", que.popleft())

    def test_defaultdict(self):
        """
        defaultdict:Key不存在时返回默认值
        """
        default_dict = collections.defaultdict(lambda : "N/A")
        default_dict[‘name‘] = ‘xiaoshitoutester‘
        default_dict[‘job‘] = ‘tester‘
        self.assertEqual(‘xiaoshitoutester‘, default_dict[‘name‘])
        self.assertEqual(‘tester‘, default_dict[‘job‘])
        self.assertEqual(‘N/A‘, default_dict[‘age‘])

    def test_counter(self):
        """Counter:统计字符出现的次数"""
        str_example = "xiaoshitoutester"
        # list_example = [‘A22222‘,1,3,"B"]
        c = collections.Counter()
        for ch in str_example:
            c[ch] += 1
        self.assertEqual(3, c[‘t‘])

if __name__ == ‘__main__‘:
      unittest.main()
时间: 2024-08-08 22:06:56

Python,collections模块的相关文章

Python collections模块总结

Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用. collections ChainMap 这是一个为多个映射创建单一视图的类字典类型,也就是说,它同样具有字典类型的方法,它比基础数据结构中的字典的创建和多次更新要快,需要注意的是,增删改的操作都只会针对该对象的第一个字典,其余字典不会发生改变,但是如果是查找,则会在多个字典中查找,直到找到第一个出现的key为止. 特有方法 解释 maps 返

python collections 模块

collections 模块里有一些比较好用的类型,是一些基础类型的扩展,是必要会的模块之一 Counter (计数器) 可以追踪值出现的次数,且是由大到小排列出来 >>> import collections >>> c1 = collections.Counter('adadwefffcvcc') >>> c1 Counter({'c': 3, 'f': 3, 'a': 2, 'd': 2, 'e': 1, 'w': 1, 'v': 1}) 2.O

Python collections模块实例

collections模块基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: 1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类2.deque: 双端队列,可以快速的从另外一侧追加和推出对象3.Counter: 计数器,主要用来计数4.OrderedDict: 有序字典5.defaultdict: 带有默认值的字典 n

Python collections 模块用法举例

Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想给大家 介绍的 collections 就是一个非常好的例子. 1.collections模块基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: 1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类 2.deque: 双端队列,可以快速

python collections模块-标准库

参考老顽童博客,他写的很详细,例子也很容易操作和理解. 1.模块简介 collections包含了一些特殊的容器,针对Python内置的容器,例如list.dict.set和tuple,提供了另一种选择: namedtuple,可以创建包含名称的tuple: deque,类似于list的容器,可以快速的在队列头部和尾部添加.删除元素: Counter,dict的子类,计算可hash的对象: OrderedDict,dict的子类,可以记住元素的添加顺序: defaultdict,dict的子类,

(转)python collections模块详解

原文:https://www.cnblogs.com/dahu-daqing/p/7040490.html 参考老顽童博客,他写的很详细,例子也很容易操作和理解. 1.模块简介 collections包含了一些特殊的容器,针对Python内置的容器,例如list.dict.set和tuple,提供了另一种选择: namedtuple,可以创建包含名称的tuple: deque,类似于list的容器,可以快速的在队列头部和尾部添加.删除元素: Counter,dict的子类,计算可hash的对象:

python collections模块中namedtuple()

最近看Ansible API中引用了collections的namedtuple() 网上搜了一番后,发现是一个集合模块,提供了多种集合类. In [1]: from collections import                Callable        Hashable        Mapping         namedtuple      ValuesView      _field_template _itemgetter                    Conta

python collections模块 计数器(counter)

一.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 把我写入的元素出现的多少次都计算出来 import collections # 创建一个Counter对象 obj = collections.Counter('ddccbbqqaaa') print(obj) ''' 把我写入的元素出现的多少次都计算出来 Counter({'a': 3, 'd': 2, 'c': 2, 'b': 2, 'q': 2}) ''' ob

python模块 - collections模块

http://blog.csdn.net/pipisorry/article/details/46947833 集合库collection collections模块介绍 Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: 1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3