文章目录

  • 一、字符串的驻留机制
  • 二、字符串驻留机制的优缺点

一、字符串的驻留机制

"""
字符串是基本数据类型,不可变的字符序列
字符串驻留机制:
相同且不可变的字符串只保留一份
驻留池中只存放不同的值
后续创建相同字符串不需要开辟新的空间,只需要把字符串的地址赋给新建对象即可
驻留机制的几种情况:
1、字符串的长度为0或1
2、符合标识符的字符串(字母、数字、下划线)
3、字符串只在编译时驻留
4、[-5,256]之间的整数数字
以上原则在pycharm无法测试 因为pycharm对字符串进行了优化处理
"""
# 字符串的驻留机制 实例
a="say"
b="say"
c="say"
print(id(a),id(b),id(c))
# 在编译的时候驻留 实例
a1="abc"
a2="ab"+"c"
print(a1 is a2)
# 使用sys中的intern方法强制俩个字符串指向同一个对象
q1='abc%'
q2='abc%'
print(q1 is q2)
import sys
a=sys.intern(b)
print(q1 is q2)

二、字符串驻留机制的优缺点

"""
驻留机制的优缺点
优点:当需要相同值的字符串,直接从驻留池拿出来直接用,避免频繁创建销毁,提升效率,节约内存。
缺点:字符串的拼接和修改影响性能。需要字符串的拼接的时候,使用join方法,而不是用"+"
join方法先计算字符串的长度,再拷贝,只new一次对象,效率比加运算高
"""

Python基础19 字符串驻留机制以及驻留机制的优缺点相关推荐

  1. python基础实例-Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 en ...

  2. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try: <...............&g ...

  3. 《每天五分钟冲击python基础之字符串练习题》(七)

    前言 相信通过上两节课的学习,同学们都已经能轻松掌握了,python字符串的入门和字符串的深入了,(ps:如果还没有学习的同学,请到这里先学习,再来看这节课喔!<每天五分钟冲击python基础之 ...

  4. 带你学python基础:字符串

    还记得学习 C 语言的时候吗,是不是每天都在控制台程序上玩耍,那时发现编程太没意思了,就只能玩这些东西吗? 后来,发现其实,外面的世界还是非常的广阔的,但是,今天,既然是 python 基础,所以我们 ...

  5. Python 基础数据类型 -字符串(str)的详细用法

    字符串是编程中最重要的数据类型,也是最常见的 1.字符串的表示方式 -单引号' ' 双引号 " " 多引号 """ """ ...

  6. 字符串从右截取_跟运维组学Python基础day04(字符串str的索引和切片)

    内容回顾 跟运维组学Python基础 day03 格式化输出 %s name = input('Pleases input your name: ') # Zanaoprint('My name is ...

  7. python基础之字符串(七)

    文章目录 1.python字符串 2.demo 3.字符串输入 4.切片 5.字符串常见操作 6.Python转义字符 7.Python 字符串格式化 8.Python三引号 9.Unicode 字符 ...

  8. Python 基础系列--字符串与编码

    一旦走上编程这条路,如果不把编码这个问题搞清楚,那么它会像幽灵般纠缠你整个职业生涯. 字符串在编程中是使用频率最高的数据类型,像 web 网站中显示的中英文信息,使用记事本打开一个文本文件所看到的内容 ...

  9. 【Python基础】字符串专题总结

    这篇是字符串专题总结 除了常见的数值型,字符串是另一种常遇到的类型.一般使用一对单引号或一对双引号表示一个字符串. 字符串中如果遇到 \ 字符,可能是在做字符转义,所谓的转义便是字符的含义发生改变,比 ...

最新文章

  1. 操作系统---Systemd
  2. 【转载】Linux Shell-条件测试
  3. hdu 4568 bfs + 状压dp
  4. 有一种惨:人还在,数据没了...
  5. 将war包发布到测试服的常用命令
  6. 研究生应当具备的三种基本技能
  7. Android Material Design之Toolbar与Palette
  8. python爬知识星球付费数据_用python爬取知识星球
  9. P1541-乌龟棋【多维dp】
  10. HighChart模拟点击series的name显示隐藏
  11. 基于消息队列 RocketMQ 的大型分布式应用上云实践
  12. SNMP客户端工具MIB Browser
  13. logback logback.xml 常用配置详解
  14. php parse_url,pathinfo,basename函数
  15. QQ群导出群成员名单
  16. ffmpeg转码命令
  17. php程序员开发工具箱,PHP程序员工具箱免费版
  18. 如何设计一个秒杀系统(完整版)
  19. 针孔相机模型,鱼眼相机模型,单目标定
  20. 利用python进行显著性分析

热门文章

  1. 题解 CF1364B Most socially-distanced subsequence
  2. DRAM 相关故障(Rowhammer、SPOILER、RAMBleed、TRRespass、Half-Double)
  3. css 和常用快捷键
  4. 【STM32+cubemx】0007 HAL库开发:外部中断,优先级和中断向量表
  5. 静态变量static的理解
  6. RAM和ROM容量计算
  7. Email的HTML代码模板
  8. C++基础之成员变量的秘密
  9. 避不过裁员大潮,有钱任性也独木难支!以太坊联合创始人Joe Lubin的分布式梦,要破了吗?
  10. 图和树的基本概念与认识