python常用数据结构(2)
2024-08-31 22:54:35
1.有名字的元组——namedtuple
>>> from collections import namedtuple
>>> Point = namedtuple('Point', ['x', 'y'])
>>> p = Point(1, 2)
>>> p.x
1
>>> p.y
2
Circle = namedtuple('Circle', ['x', 'y', 'r'])
2.双向链表——deque
list访问数据很快,但增删就比较慢,因为list是线性存储,deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈
>>> from collections import deque
>>> q = deque(['a', 'b', 'c'])
>>> q.append('x')
>>> q.appendleft('y')
>>> q
deque(['y', 'a', 'b', 'c', 'x'])
deque
除了实现list的append()
和pop()
外,还支持appendleft()
和popleft()
,这样就可以非常高效地往头部添加或删除元素。
3.有序的字典——OrderedDict
>>> od = OrderedDict()
>>> od['z'] = 1
>>> od['y'] = 2
>>> od['x'] = 3
>>> od.keys() # 按照插入的Key的顺序返回
['z', 'y', 'x']
4.频数计算器——Counter
有时候经常要统计某个字符在字符串中出现的频率,或者某个数字在list中出现的频率,这个时候如果不想用pandas,Counter就能派上用场了。
>>> from collections import Counter
>>> c = Counter()
>>> for ch in 'programming':
... c[ch] = c[ch] + 1
...
>>> c
Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
>>> a=[1,2,2,2,3,3,4]
>>> from collections import Counter
>>> c=Counter()
>>> for item in a:
... c[str(item)]=c[str(item)]+1
...
>>> c
Counter({'': 3, '': 2, '': 1, '': 1})
本文转自廖雪峰老师的python教程
最新文章
- iOS--UILable自适应大小
- js中join函数的使用方法(js输出html标签)
- C语言的数据类型及其对应变量
- electronic data interchange 电子数据交换
- (并查集 or BFS+二分)HDU5652
- Linq 合并数据并相加
- help python(查看模块帮助文档)
- Entity Framewor 学习笔记 (Enum)
- Eclipse提交任务至Hadoop集群遇到的问题
- jQuery 添加 删除 改动select option
- maven 项目 pom.xml文件中配置的jar包下载报错
- unix网络编程环境搭建
- socketpair创建双向通信的管道(全双工通信)
- python3全栈开发-异常处理
- 异常--finally关键字
- border——边框属性
- Eclipse中创建一个新的SpringBoot项目
- lcn 分布式事务协调者集群原理
- Github介绍
- CSU 2005 Nearest Maintenance Point(最短路+bitset)
热门文章
- HTML5 的成长之路
- yii2.0获取最后一条ID
- UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项
- WPF公章制作之2
- android4.4系统解决“ERRORcouldn&;#39;t find native method”方法
- Leetcode 169 Majority Element 分治
- WPF中StringFormat的用法
- Android Ant 和 Gradle 包装工艺和效率控制
- Angular基本概念理解
- SICP 1.17-1.19