简述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  

最新文章

  1. [LeetCode] Spiral Matrix 螺旋矩阵
  2. SQL Server触发器
  3. Mac下升级Nodejs
  4. visual.studio.15.preview5 编译器
  5. iOS 自动布局详细介绍
  6. linux ssh更换默认的22端口
  7. C语言浮点数除法可以精确到多少位小数
  8. asp.net尽量不在js里写&lt;%%&gt;
  9. 引入css ,使用@import和link的方式
  10. hdu 4035 Maze(期待更多经典的树DP)
  11. windows系统扩展C盘的工具推荐(解决了C盘和压缩卷不相邻无法扩展C盘问题)
  12. head first python菜鸟学习笔记(第四章)
  13. 大数据技术Hadoop笔试题
  14. Servlet接口UML图
  15. python之路--MySQL 库,表的详细操作
  16. K3 WISE 开发插件《SQL语句WHERE查询-范围查询/模糊查询》
  17. Gitlab+Jenkins学习之路(十四)之自动化脚本部署实践
  18. docker 网络的几种模式
  19. 在linux下创建自定义service服务
  20. Ubuntu 16.04 ORB_SLAM2+ROS+usb_cam+AR

热门文章

  1. CAS 原理
  2. ubuntu上第一个hello程序
  3. 如何把Composer镜像迁移到Laravel China 维护的镜像?
  4. MACD:黄白线、红绿柱与0轴关系
  5. javascript篇-typeof,instanceof,constructor,toString判断数据类型的用法和区别
  6. nginx的访问控制
  7. 纯真IP数据库格式详解 附demo
  8. wue父子通信和动态路由 还有点击事件直接赋值传参数
  9. jenkins借助winscp传本地文件到远程服务器上
  10. 使用github(一)