在使用Python的过程中,一定是离不开数据结构的, 也就是List-列表,Tuples-元组,Dictionaries-字典。

那实际应用中我们更多的还是要去操作这些结构里的数据。比如,在列表后面添加元素,那么就会用到append() 方法。

那除了这些本身的操作方法之外,还有一个Python内建模块——collections,也提供了不少使用的方法,今天来捋一下。

一、Counter

这是一个计数器,我们可以用来方便的统计出一些元素出现的次数,比如String、List、Tuples等等。

String

from collections import Counter

c = Counter("HelloKitty")

print(c)

#运行结果:
Counter({'l': 2, 't': 2, 'H': 1, 'e': 1, 'o': 1, 'K': 1, 'i': 1, 'y': 1})

List

from collections import Counter

c = Counter(["苹果", "樱桃", 1, 1, 4, 4, 5])

print(c)

#运行结果:
Counter({1: 2, 4: 2, '苹果': 1, '樱桃': 1, 5: 1})

二、deque

我们很喜欢用list来存放数据,因为非常的方便。但是list的缺点也很明显,如果你是按索引访问元素就很快,但是插入和删除元素就很慢。

当然了,数据量小的时候肯定是感知不到的,只有当数据量大的时候,你才会发现这个缺点,因为list是线性数据结构,比如插入这个动作,需要把它后面的元素都挪一位。

deque除了实现list的append()和pop()外,还提供了appendleft()和popleft(),这样的话我们可以很方便的向着列表的另一头,进行添加和移除操作了。

from collections import deque

deque_list = deque(['a', 'b', 'c', 'd'])
deque_list.append('苹果')
deque_list.appendleft('吃') print(deque_list) #运行结果:
deque(['吃', 'a', 'b', 'c', 'd', '苹果'])

三、OrderedDict

使用Python,大家自然知道Dict字典中的key是无序的。那如果你想要保持key的顺序的话,用OrderedDict即可。

from collections import OrderedDict

list_a = [(1, "苹果"), (2, "香蕉"), (3, "西瓜"), (4, "芒果")]

order_dict = OrderedDict(list_a)
print(order_dict) #运行结果:
D:\Daily
λ python whatiscollections.py
OrderedDict([(1, '苹果'), (2, '香蕉'), (3, '西瓜'), (4, '芒果')])

如果有场景中需要使用到,可以试试这几种用法。

最新文章

  1. SQL 性能优化
  2. css中font-size的单位总结:px、em、pt
  3. Python数据类型之“文本序列(Text Sequence)”
  4. JS案例之7——瀑布流布局(2)
  5. php面试题之四——PHP面向对象(基础部分)
  6. [转载]《C++0x漫谈》系列之:多线程内存模型
  7. SCCM客户端推送/卸载
  8. HW6.3
  9. python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客
  10. Html+Css实现九大行星动画效果
  11. 根据NSString字符串长度自动改变UILabel的frame
  12. 开涛spring3(4.3) - 资源 之 4.3 访问Resource
  13. MySQL 系列
  14. Calendar日历工具类
  15. Android星球效果实现
  16. win10开机自启动
  17. arm cortex-m0plus源码学习(一)整体框架
  18. C++17尝鲜:variant
  19. 我是如何将linux用在开发环境中的
  20. HDU 1181 变形课 (深搜)

热门文章

  1. 【Python】利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来
  2. Python实现迪杰斯特拉算法
  3. 百度小程序中swan.setPageInfo的用法
  4. C#LeetCode刷题之#671-二叉树中第二小的节点(Second Minimum Node In a Binary Tree)
  5. 用C++写一个电话通讯录
  6. (转)mybatis一级缓存二级缓存
  7. oracle创建用户操作
  8. Python 控制台输出时刷新当前行内容而不是输出新行
  9. MAC安装Navicat Premiun12
  10. 获取 python 包的路径