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

base_review的更多相关文章

随机推荐

  1. Win7 开机自动启动Outlook2010

    工作中,设置一些开机启动项,可以提供工作效率,下面演示设置Outlook2010在win7系统开机自启动,其它软件,如Eclipse.微信等,也可以这么配置. 环境: win7,outlook 201 ...

  2. h5 中的 section 标签

    转自 http://www.studyofnet.com/news/331.html 本文导读:<section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中 ...

  3. 使用SBT构建Scala应用【转载】

    使用SBT构建Scala应用 SBT简介 SBT是Simple Build Tool的简称,如果读者使用过Maven,那么可以简单将SBT看做是Scala世界的Maven,虽然二者各有优劣,但完成的工 ...

  4. HTTP协议(TCP/IP)

    HTTP协议(TCP/IP): 服务器套接字(TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口)   数据包(请求包.报文)http 请求格式: ...

  5. Extjs event domain 研究

    Listeners and Event Domains In Ext JS 4.2, the MVC event dispatcher was generalized with the introdu ...

  6. linux git patch 和patch以及git diff 命令

    1.git log 查看commit id,修改前为id1,修改后id2 2.根据id1到id2有几次提交来生成几个patch,否则的话会根据所有节点生成很多patch 比如: commit id2 ...

  7. 解放你生产力的10款效率工具,赶紧mark起来

    聪明的人总是善用工具 社会的快度发展赋予我们的一个幸运之处在于:你可以通过读书或使用工具去改善自身的处境甚至是阶层. 在父母那个时代,通过熟练使用办公软件,可以使一个在水泥地做帮工的青年走进格子间.而 ...

  8. ASP.NET 预编译命令(解决发布后第一次访问慢问题)

    ASP.NET 编译工具 (Aspnet_compiler.exe) 官方说明 新建bat文件   @echo off   CD /d C:\Windows\Microsoft.NET\Framewo ...

  9. Express web框架

    哈哈,还是Node.JS哦 现在我们来看看位Node.JS些的Express webkuangjia 一. 安装express npm install express -g --save npm in ...

  10. OAuth2.0标准类库汇总

    转载官网: https://oauth.net/code/ https://www.w3cschool.cn/oauth2/5ghz1jab.html 服务端类库 .NET .NET DotNetOp ...