目录
字符串_split()分割_join()合并_join()效率测试
split()分割和join()合并
- split()分割可以基于指定分隔符将字符串分隔成多个字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下:
>>>a=’to be or not to be’
>>>a.split()
[‘to’,’be’,’or’,’not’,’to’,’be’]
>>>a.split(‘be’)
[‘to’,’or not to’,’’]
- join的作用和split()作用刚好相反,用于将一系列子字符串连接起来。示例代码如下:
>>>a=[‘sxt’,’sxt100’,’sxt200’]
>>>’*’.join(a)
‘sxt*sxt100*sxt200’
拼接字符串要点:
- 使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。
【操作】测试拼接符+和join不同效率
import time
time01 = time.time() #起始时刻
a = ''
for i in range(1000000):
a +='sxt'
time02 = time.time() #终止时刻
print('运算时间:'+str(time02-time01))
time03 = time.time() #起始时刻
li = []
for i in range(1000000):
li.append('sxt')
a = ''.join(li)
time04 = time.time() #终止时刻
print('运算时间:'+str(time04-time03))
字符串_驻留机制_内存分析_字符串同一判断
字符串驻留:
- 仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python仅支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线_、字母和数字)会启用字符驻留机制。
>>>a = ‘abd_33’
>>>b = ‘abd_33’ #同一个对象
>>>a is b
True
>>>c = ‘dd#’
>>>d = ‘dd#’ #不同的对象
>>>c is d
False
>>>str1 = ‘aa’
>>>str2 = ‘bb’
str1 + str2 is ‘aabb’
(注:一个对象由三部分组成,id、type、value)
字符串比较和同一性
- 我们可以直接用== !=对字符串进行比较,是否含有相同的字符。
我们使用is/not is,判断两个对象是否为同一个对象。比较的是对象的地址,即identity(id)。
成员操作符
- in / not in关键字,判断某个字符(子字符串)是否在字符串中。
字符串常用方法汇总
- 字符串常用方法总结:
常用查找方法
我们以一段文本作为测试:
a=’‘’我是高淇,今年18岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他6岁了。我是一个编程教育的普及者,希望影响6000万学习编程的中国人。我儿子现在也开始学习编程,希望他18岁的时候可以超过我’‘’
方法和使用实例 | 说明 | 结果 |
---|---|---|
len(a) | 字符串长度 | 96 |
a.startswith(‘我是高淇’) | 以指定字符串开头 | True |
a.endswith(‘过我’) | 以指定字符串结尾 | True |
a.find(‘高’) | 第一次出现指定字符串的位置 | 2 |
a.rfind(‘高’) | 最后一次出现指定字符串的位置 | 29 |
a.count(‘编程’) | 指定字符串出现了几次 | 3 |
a.isalnum() | 所有字符全是字母或者数字 | False |
去除首尾信息
- 我们可以通过strip()去除字符串首尾指定信息。通过lstrip()去除字符串左边指定信息,rstirp()去除字符串右边指定信息。
【操作】去除字符串首尾信息
>>>’*s*x*t*’.strip(‘*’)
‘s*x*t’
>>>’*s*x*t*’.lstrip(‘*’)
‘s*x*t*’
>>>’*s*x*t*’.rstrip(‘*’)
‘*s*x*t’
>>>’ sxt ’.strip()
>>>’sxt’
(注:只去除首尾的)
大小写转换
- 编程中关于字符串大小写转换的情况,经常遇到。将相关方法汇总在这里:
先指定测试变量:
a=’gaoqi love programming, love SXT’
示例 | 说明 | 结果 |
---|---|---|
a.capitalize() | 产生新的字符串,首字母大写 | Gaoqi love programming, love sxt |
a.title() | 产生新的字符串,每个单词都首字母大写 | Gaoqi Love Programming, Love Sxt |
a.upper() | 产生新的字符串,每个字母都大写 | GAOQI LOVE PROGRAMMING, LOVE SXT |
a.lower() | 产生新的字符串,所有都小写 | gaoqi love programming, love sxt |
a.swapcase() | 产生新的字符串,所有字母大小写互换 | GAOQI LOVE PROGRAMMING, LOVE sxt |
格式排版
- center()、ljust()、rjust()这三个函数用于对字符串进行排版。示例如下:
>>>a=’SXT’
>>>a.center(10,’*’)
‘***SXT****’
>>>a.center(10)
‘ SXT ‘
>>>a.ljust(10,’*’)
‘SXT*******’
- 其他方法
isalnum() | 是否为字母或者数字 |
isalpha() | 是否只由字母组成(含汉字) |
isdigit() | 字符串是否只由数字构成 |
isspace() | 是否为空白符 |
isupper() | 是否为大写字母 |
islower() | 是否为小写字母 |