zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Redis集群到集群迁移
    lvm磁盘创建
    前端开发环境
    golang Gorm 运用及执行原生SQL
    redis迁移两款工具
    C#知识点总结系列:3、C#中Delegate和Event以及它们的区别
    由浅入深CIL系列【目录索引】+ PostSharp AOP编程【目录索引】
    Windows 8实用窍门系列:22.Windows 8 的SemanticZoom缩放视图
    C#知识点总结系列:2、C#中IDisposable和IEnumerable、IEnumerator
    Windows 8实用窍门系列【目录索引】
  • 原文地址:https://www.cnblogs.com/xiaoshitoutest/p/6441807.html
Copyright © 2011-2022 走看看