Python学习(8)|字符串_split()分割_join()合并_代码效率测试_驻留机制_同一判断_值相等判断

发布时间:2024年01月21日

27-字符串_split()-分割 _join()-合并 _代码效率测试

split() 分割:

split() 可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下:

a = "to be or not to be"
print(a.split())            #执行结果:['to', 'be', 'or', 'not', 'to', 'be']
print(a.split('be'))        #执行结果:['to ', ' or not to ', '']
b = "I love u"
print(b.split())            #执行结果:['I', 'love', 'u']
print(b.split('v'))         #执行结果:['I lo', 'e u']

join() 合并:

join() 的作用和 split() 的作用刚好相反,用于将一系列子字符串连接起来。示例代码如下:

a = ['sxt','sxt100','sxt200']
print('*'.join(a))
b = ['aa','bb','cc']
c = "".join(b)
d = '***'.join(b)
print(c)
print(d)

拼接字符串要点:使用字符串拼接符 + ,会生成新的字符串对象,因此不推荐使用 + 来拼接字符串。推荐使用 join 函数,因为 join 函数在拼接字符串时会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

import time

time1 = time.time()
a = ""
for i in range(1000000):
    a += "sxt"
time2 = time.time()
print("+连接的运算时间:" +str(time2-time1))    #执行结果:+连接的运算时间:0.26886796951293945

time3 = time.time()
li = []
for i in range(1000000):
    li.append("sxt")

b = "".join(li)
time4 = time.time()
print("join()连接的运算时间:" +str(time4-time3))   #执行结果:join()连接的运算时间:0.06507015228271484

以上代码显示了使用 + 拼接和使用 join() 拼接的运行时间,使用 join() 拼接运行时间远远小于使用 + 拼接,使用 join() 拼接效率更高。

28-字符串-驻留机制-同一判断-值相等判断

字符串驻留:常量字符串(双引号内的字符串)只保留一份。如下实例,c 和 d 指向的对象都一样,所以说内存中只存一份

c = "dd#"
d = "dd#"
print(c is d)       #执行结果:True

字符串比较和同一性:

可以直接使用 == 和 != 对字符串进行比较,是否含有相同的字符

使用 is not is ,判断两个对象是否是同一个对象。比较的是对象的地址,即 id(obj1) 是否和 id(obj2) 相等

a = "aabbcc"
b = "aabbcc"
print(a is b)       #执行结果:True
print(id(a))        #执行结果:1984087702384
print(id(b))        #执行结果:1984087702384
print(a == b)       #执行结果:True

成员操作符判断子字符串:

in not in 关键字,判断某个字符(字符串)是否存在于字符串中。

a = "ab" in "abcd"
print(a)        #执行结果:True
b = "aabbcc"
print("dd" in b)    #执行结果:False

文章来源:https://blog.csdn.net/weixin_73921499/article/details/135699103
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。