python中collections的用法,python3 collections模块

  python中collections的用法,python3 collections模块

  前言中Python内置了四种数据类型,包括:list、tuple、set和dict。这些数据类型各有特点,但是这些特点(比如dict的无序性)在一定程度上限制了数据类型的使用,在一些使用场景下效率会较低,比如有时候我们可能需要维护一个有序的字典。

  在这个场景中,我们可以使用Python的内置集合模块,它包括许多有用的集合类。合理使用可以提高我们代码的运行效率。

  接下来,介绍集合模块中的常见集合类,集合模块被称为:

  使用From Collections Import * default dict dict时,当键值不存在时,直接添加值会出现错误。使用DefaultDict可以避免这个错误。

  Defaultdict是对字典类型的补充。它可以为字典值设置一个类型,并在键不存在时自动生成相应类型的值。

  例如:

  从集合导入默认字典

  测试数据=(

  (‘猫’,2),

  (‘狗’,5),

  (‘羊’,3),

  (‘猫’,1),

  (“羊”,2)

  )

  test _ data _ dict=default dict(list)

  对于名称,测试数据中的数量:

  测试数据字典[名称]。追加(数量)

  打印(测试数据字典)

  打印运行结果(dict(test_data_dict)):

  defaultdict( class list ,{cat: [2,1], dog: [5], sheep: [3,2]})

  { 猫:[2,1],狗:[5],羊:[3,2]}有序的dict在Python3.6之前的字典都是乱序的,但是有时候我们需要保持字典的顺序。有序字典可以在字典的基础上实现字典的排序。这里的Ordered指的是字典键插入的顺序,因此

  代码示例:

  从集合导入订单直接

  original_dict={a: 2, b: 4, c: 5}

  print(dict.keys():,original_dict.keys(),type(original_dict.keys()),sep=\t )

  print(dict.values():,original_dict.values(),type(original_dict.values()),sep=\t )

  print(list(zip(tuple(original _ dict . keys()),tuple(original_dict.values())))

  对于键,original_dict.items()中的值:

  打印(关键字,值)

  ordered _ dict=ordered dict(list(zip(tuple(original _ dict . keys()),tuple(original_dict.values())))

  对于键,ordered_dict.items()中的值:

  打印运行结果(键,值):

  可以看到orderDict是根据创建字典时的插入顺序进行排序的。

  dequePython中的list是基于array实现的,所以很容易找到,但是插入和删除操作比较耗时和复杂。

  Deque是一个高效插入和删除的双向列表,适用于队列和堆栈,并且是线程安全的。

  该列表只提供append/pop方法来插入或删除列表末尾的元素。deque增加了appendleft/popleft等方法,更高效地在元素开头插入/删除元素。

  代码示例:

  从集合导入队列

  d=德克([1,2,3,4,5])

  D.extendleft([0]) # extendleft默认情况下将元素0添加到列表的左侧。

  print(d,list(d),sep=\t )

  D.extend([6,7]) # extend默认情况下,新元素6和7被添加到列表的右侧。

  print(d,list(d),sep=\t )

  D.popleft() # popleft默认删除列表左侧的元素0。

  运行打印结果(d,列表(d),sep=\t ):

  可以双向操作列表中的元素,非常方便。

  Counter dictionary子类,它对可以散列的对象进行计数。

  代码示例:

  从集合导入计数器

  test_counter_data=[猫,狗,羊,猫,狗]

  counter_data=Counter()

  对于测试计数器数据中的项目:

  counter_data[item]=1

  print (counter _ data,dict (counter _ data),sep= \ t )的运行结果:

  您可以计算对象中的元素数(例如上面代码中列表中的元素)。

  命名元组元组子类。

  Python中元组的一个重要特点是元素不能添加、删除或更改,一般用索引来查找元组元素。

  可以用Namedtuple(typename,field_name)来命名tuple中的元素,然后用这个名字来查找tuple中的值,有点类似于在字典中查找。

  代码示例:

  从集合导入命名元组

  Animal=NamedTuple (animal , type age) #将动物元组(包含类型和年龄两个元素)转换为类 __main__。动物物品。

  印刷品(动物)

  Mark=animal(type=dog ,age=2) #命名元组中的元素。

  打印(mark.type)运行结果:

  使用namedtuple可以提高代码的可读性和文档性。

  期待陌生,拥抱惊喜。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: