Python中字符串二三事

首先说两个运算符:

" == " 运算符测试值的等价性,递归地比较所有内嵌对象

" is " 表达式测试对象的同一性,测试两者是否为同一对象(是否为同一地址)

Python内部会对临时存储并重复使用的段字符串做优化,在PyCharm中优化的很好

下边是在PyCharm中运行的

s1 = ‘hello‘
s2 = ‘hello‘
print(s1 is s2)

s1 = ‘hello world‘
s2 = ‘hello world‘
print(s1 is s2)

s1 = ‘h e l l o‘
s2 = ‘h e l l o‘
print(s1 is s2)

s1 = ‘a longer string‘
s2 = ‘a longer string‘
print(s1 is s2)

s1 = ‘hello world good morning‘
s2 = ‘hello world good morning‘
print(s1 is s2)

  

True
True
True
True
True

  

下边是在Python交互器中运行的现象。

>>> s1 = "spam"
>>> s2 = "spam"
>>> s1 is s2
True
>>> s1 = "sp am"
>>> s2 = "sp am"
>>> s1 is s2
False
>>> s1 = ‘ ‘
>>> s2 = ‘ ‘
>>> s1 is s2
True
>>> s1 = ‘  ‘
>>> s2 = ‘  ‘
>>> s1 is s2
False
>>> s1 = ‘kkkkkkkkkkkkkkkkkkkkk‘
>>> s2 = ‘kkkkkkkkkkkkkkkkkkkkk‘
>>> s1 is s2
True
>>> s1 = ‘\t\t‘
>>> s2 = ‘\t\t‘
>>> s1 is s2
False
>>> s1 = ‘\n‘
>>> s2 = ‘\n‘
>>> s1 is s2
True

没试验太多数据,老哥们要是有新的发现也可以跟我说

原文地址:https://www.cnblogs.com/cong12586/p/10742490.html

时间: 2024-10-18 22:12:08

Python中字符串二三事的相关文章

python中字符串链接的七种方式

一. str1+str2 string类型 '+'号连接 >>> str1="one" >>> str2="two" >>> str1+str2 'onetwo' >>>注意:该方式性能较差,因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了例

python中字符串的操作方法

python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细介绍了关于python中字符串的大小写转换.isXXX判断.填充.子串搜索.替换.分割.join以及修剪:strip.lstrip和rstrip的相关内容,需要的朋友可以参考下 前言 python中字符串对象提供了很多方法来操作字符串,功能相当丰富.?123 print(dir(str)) [...

Python中字符串的学习

Python中字符串的学习 一.字符串的格式化输出 % 占位符 %s 字符串 %d integer %x 十六进制 integer %f float 指定长度 %5d 右对齐,不足左边补空格 %-5d - 代表左对齐,不足右边默认补空格 %05d 右对齐,不足左边补0 -浮点数: %f 默认是输出6位有效数据, 会进行四舍五入 %.2f 指定小数点位数的输出 保留小数点后2位 '%4.8f' 4代表整个浮点数的长度,包括小数,只有当 字符串的长度大于4位才起作用.不足4位空格补足,可以用%04.

Python中字符串查找效率比较

Python中字符串查找方式有多种,常见的有re.match/search or str.find 用一个例子来说明各种方式的效率如下: from timeit import timeit import re def find(string, text): if string.find(text) > -1: pass def re_find(string, text): if re.match(text, string): pass def best_find(string, text): i

Python中字符串的有趣玩法

反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-character strings)之间的转换 >>> ord('s') # or

python中字符串拼接

python中字符串拼接的三种方式: 1.使用 '+': 这中方式会在内存中,没使用一次就开辟一个新的空间,不建议使用.当数据庞大时候效率很低.后期有垃圾回收机制来处理没有用的字符串 案例:name = 'jam' name1 = name + 'c'这样内存中会开辟一个空间存放 name2 = name1 + 'h''这样内存中会再开辟一个空间存放 2.字符串格式化的形式:%s,这中方式让内存最多就开辟两个空间来进行存放字符. 案例:name = 'jam' name2 = 'chen' se

Python中字符串的操作

在python中字符串的包围的引号有三种,单引号,双引号,三引号,其中,单引号和双引号完全相同,在python中单引号也可完成转义工作 >>>print('doesn\'t \n it?') doesn't it? 但经常性的,一般使用 单双引号+转义更为普遍 >>>print("doesn't \n it?") doesn't  it? 三引号的使用,三引号(三个单引号或者三个双引号)用来座位注释,文档说明,类描述,用于比较广泛,他可以包含单引号,

Python中字符串的表示

区别于其他语言,python中字符串可以用3中方法表示,且都能被正确编译: 1.'mary' 单引号括起来 2."it's a great day" 双引号括起来 3.''' nice to meet you, my dear friend. '''   三引号括起来 区别: a.单引号和双引号没有什么区别,不过单引号不用按shift,打字稍微快一点.表示字符串的时候,单引号里面可以用双引号,而不用转义字符,反之亦然. b.如果直接用单引号括住单引号,需要转义字符,像这样:'it\'s

python中字符串的几种表达方式(用什么方式表示字符串)

说明: 今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 >>> 'my python lession' #以单引号将字符串扩起来 'my python lession' >>> a = 'my python lession' >>> print(a) my python lession 2 使用双引号将字符串扩