base_review
2024-08-28 22:55:09
简述Python的字符串驻留机制。
- 字符串驻留是一种仅保存一份相同且不可变字符串的方法。
- 原理
- 系统维护interned字典,记录已被驻留的字符串对象。
- 当字符串对象a需要驻留时,先在interned检测是否存在,若存在则指向存在的字符串对象,a的引用计数减1;
- 若不存在,则记录a到interned中。
- 优点
- 在字符串比较时,节省大量内存。非驻留比较效率为o(n),驻留时比较效率为o(1)。
- 驻留情况
- 字符串只在编译时进行驻留,而非运行时。
- 字符串长度为0和1时,默认都采用了驻留机制。
- 字符串>1时,且只含大小写字母、数字、下划线时,才会默认驻留。
- 用乘法得到的字符串
- 乘数为1时
- 仅含大小写字母、数字、下划线,默认驻留。
- 含其他字符串
- 长度<=1,默认驻留。
- 长度>1,默认不驻留。
- 乘数大于1时
- 仅含大小写字母、数字、下划线,长度<=20,默认驻留
- 仅含大小写字母、数字、下划线,长度>20,默认都不驻留
- 其他字符串时,和长度无关,不驻留。
- 字符串被sys.intern() 指定驻留。
- [-5, 256]之间的整数数字,Python默认驻留。
现有字典d={'a': 26, 'g': 20, 'e': 20, 'c': 24, 'd': 23, 'f': 21, 'b': 25},请按照字中的 value字段进行排序.
print(dict(sorted(list(d.items()), key=lambda x: x[1])))
如何实现[‘1’,’2’,’3’]变成[1,2,3] ?
print(list(map(lambda x: int(x), ['', '', ''])))
print([int(i) for i in ["","",""]])
py2项目如何迁移成py3
python3自带工具2to3.py 转换 python2.x 代码 到python3 位置在Python36/tool/script文件夹。 py 2to3.py -w d:/xxxx/xxx.py
最新文章
- [LeetCode] Spiral Matrix 螺旋矩阵
- SQL Server触发器
- Mac下升级Nodejs
- visual.studio.15.preview5 编译器
- iOS 自动布局详细介绍
- linux ssh更换默认的22端口
- C语言浮点数除法可以精确到多少位小数
- asp.net尽量不在js里写<;%%>;
- 引入css ,使用@import和link的方式
- hdu 4035 Maze(期待更多经典的树DP)
- windows系统扩展C盘的工具推荐(解决了C盘和压缩卷不相邻无法扩展C盘问题)
- head first python菜鸟学习笔记(第四章)
- 大数据技术Hadoop笔试题
- Servlet接口UML图
- python之路--MySQL 库,表的详细操作
- K3 WISE 开发插件《SQL语句WHERE查询-范围查询/模糊查询》
- Gitlab+Jenkins学习之路(十四)之自动化脚本部署实践
- docker 网络的几种模式
- 在linux下创建自定义service服务
- Ubuntu 16.04 ORB_SLAM2+ROS+usb_cam+AR