Python字符串的创建和驻留机制详解

作者:向阳花木 时间:2022-07-07 18:49:17 

字符串

字符串在Python中是基本数据类型,是一个不可变的字符序列。

字符串驻留机制

仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。

Python字符串的创建和驻留机制详解

驻留机制的几种情况(交互模式windows+r,cmd)

Python字符串的创建和驻留机制详解

1、字符串的长度为0或1时

Python字符串的创建和驻留机制详解

Python字符串的创建和驻留机制详解

2、符合标识符的字符串

Python字符串的创建和驻留机制详解

3、字符串只在编译时进行驻留,而非运行时

Python字符串的创建和驻留机制详解

b在运行前连接abc,而c是在运行时连接,因此c没有驻留,开辟了新的空间

4、[-5, 256]之间的整数数字

Python字符串的创建和驻留机制详解

sys中的intern方法强制两个字符串指向同一个对象

Python字符串的创建和驻留机制详解

PyCharm对字符串进行了优化处理

 a = 'abc%'
 b = 'abc%'
 print(a is b) # True

字符串驻留机制优缺点

当需要相同的字符串时,可以直接从字符串池里拿出来用,避免频繁的创建和销毁,提升效率并节约内存。因此拼接字符串和修改字符串是会比较影响性能的。

在需要进行字符串拼接时建议使用str类型的join方法,而非+,因为join()方法是先计算出所有字符串中的长度,然后再拷贝,只new一次对象,效率比“+”高。

来源:https://www.cnblogs.com/0xiaoyu/p/15936011.html

标签:Python,字符串,驻留机制
0
投稿

猜你喜欢

  • 常见数据库系统比较 Oracle数据库

    2024-01-26 04:18:57
  • python库-dotenv包 及 .env配置文件详解

    2023-09-08 20:22:38
  • OpenCV特征提取与检测之Shi-Tomasi角点检测器

    2023-12-17 09:41:35
  • Python for Informatics 第11章 正则表达式(一)

    2021-01-27 06:43:43
  • 解决Pytorch修改预训练模型时遇到key不匹配的情况

    2022-11-29 15:43:43
  • SQL Server的彻底卸载与再次安装方式

    2024-01-17 15:55:50
  • 详解Python中while无限迭代循环方法

    2022-08-17 12:53:48
  • 基于Google的Python编码规范标准

    2023-02-21 12:40:38
  • 一键生成各种尺寸Icon的php脚本(实例)

    2024-06-05 09:48:41
  • JS扩展方法实例分析

    2024-04-25 10:35:54
  • JavaScript实现的一个计算数字步数的算法分享

    2024-05-03 15:32:42
  • SQL的substring_index()用法实例(MySQL字符串截取)

    2024-01-27 19:30:19
  • python提取word文件中的图片并上传阿里云OSS

    2021-02-01 10:52:25
  • python读取nc数据并绘图的方法实例

    2023-09-16 10:08:19
  • python获取时间及时间格式转换问题实例代码详解

    2021-12-20 12:46:20
  • python基于urllib实现按照百度音乐分类下载mp3的方法

    2022-03-07 21:07:38
  • element使用自定义icon图标的两种解决方式

    2023-07-02 16:55:05
  • Python qqbot 实现qq机器人的示例代码

    2021-05-18 12:43:43
  • Python利用Selenium实现自动观看学习通视频

    2022-03-12 16:32:03
  • 用Dreamweaver制作活动菜单条

    2009-07-10 13:15:00
  • asp之家 网络编程 m.aspxhome.com