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() 拼接效率更高。
字符串驻留:常量字符串(双引号内的字符串)只保留一份。如下实例,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