今天记录一下关于字符串的一些基本操作
“”"
字符串处理方法
“”"
========= 基本处理=======
test = ‘aLexalex’
首字母大写
a = test.capitalize()
所有字母变小写,很多未知的对应关系也可小写(作用范围大于lower)
test = 'aLexalex'
a1 = test.casefold()
英文字符变大/小写
test = 'aLexalex'
a_2 = test.upper() # 重点:
a2 = test.lower()
判断字符串是否为大/小写字母,返回布尔型
test = 'aLexalex'
a2_ = test.islower()
a2__ = test.isupper()
设置宽度并将字符串居中,居左,居右,0填充(只能左填充0),
10代表总长度, *代表空白位置填充,但只能一个字符
test = 'aLexalex'
a3 = test.center(10, "*")
a3_ = test.ljust(10, '#')
a3__ = test.rjust(10, '$')
a_3 = test.zfill(15)
对字符串中元素计数
# 2,6 为始终范围
test = 'aLexalex'
a4 = test.count('e', 2, 6)
显示字符串是否以什么结尾/开头
test = 'aLexalex'
a5 = test.endswith('ex')
a6 = test.startswith('aL')
在原字符串中找其子序列,获取其位置,找到即结束,找不到返回-1
# 也可设置始终范围
test = 'aLexalex'
a7 = test.find('ex') # 重点:
格式化,将一个字符串中的占位符替换为指定的值(替换字符串内容)a8
若占位符为数字,则按数字顺序替换(从0开始) a9
s = 'i am {name},age{age}'
s1 = 'i am {1},age{0}'
a8 = s.format(name='10011', age=23)
a9 = s1.format('alex', 19)
以字典形式替换
a10 = s.format_map({'name': '10011', 'age': 19})
按指定形式替换
s2 = 'lifeisshortiusepython' # 重点
a10_ = s2.replace('use', 'make', 1) # 按数字决定替换前几个 3就是替换前三个
索引,找不到会报错
a11 = test.index('ex')
筛选字符串中的数字和字母,返回布尔型,有其他类型字符返回False
t = 'aasd245436/。/,'
a12 = t.isalnum()
按参数分隔字符串,若有\t给其加空格,(按参数加),(断句)
# 比如参数为五,\t前有1个字符,则配4个空格
test1 = 'username\temail\tpassword\n10011\t@qq.com\t123\nadmin\t@126.com\t234'
a13 = test1.expandtabs(10)
判断字符串是否纯为字母和汉字,返回布尔型
test2 = 'aLexalex好'
a14 = test2.isalpha()
判断字符串是否纯为数字
# (前者只支持十进制数字,
# 后者支持特殊形式的数字不支持中文数字,
# 第三个在第二个基础上支持中文数字)
t1 = '1234三'
a15 = t1.isdecimal()
a16 = t1.isdigit()
a17 = t1.isnumeric()
判断命名(标识符)规范(数字,字母,下划线),返回布尔型
t2 = '1d34fg-'
a18 = t2.isidentifier()
判断是否可打印输出可以显示的字符(转义字符不可见,除外),返回布尔型
t3 = 'fefev\ndsfds\t'
a19 = t3.isprintable()
判断是否为纯空格(只能全是空格,也就是空字符串,不是什么也没有),返回布尔型
t4 = ' '
a20 = t4.isspace()
判断字符串是否为标题,即所有单词首字母大写,返回布尔型
t5 = 'Life Is Short,I Use Python'
a21 = t5.istitle()
将普通字符串转换为标题形式,即首字母大写
t6 = 'life is short,i use python'
a22 = t6.title()
将字符串中字符用指定分隔符分开(拼接)
join内部循环字符串,每个字符添加分隔符
t7 = '人生苦短我用Python'
t77 = '*'
a22 = t77.join(t7) # 重点:
去除两边,左边,右边空白,\n,\t (从左边或者右边开始进行匹配)
左边和右边还可去除参数中指定的字符 (优先最多匹配:先匹配数量多的)
t8 = ' \npython\t'
a23 = t8.strip() # 重点:
a23_ = t8.lstrip()
a23__ = t8.rstrip()
a2_3 = t8.lstrip('yupj') # 只要参数中含有字符串中字符,他都会去匹配
先创建对应关系t_9,再根据对应关系将字符串中字符按照对应关系进行替换
t9 = 'adfhferthj;dstryjng;viuochv'
t_9 = str.maketrans('aeiou', '12345')
a24 = t9.translate(t_9)
按照规定参数(参数为字符串中字符,只能传一个,且分割后参数存在)
对字符串中第一个参数所在位置进行分割,分割完即停止(只能分割一次)
t10 = 'adsfgshjksyt'
a25 = t10.partition('s')
a26 = t10.rpartition('s') # 从右边开始分割
按照参数对字符串进行分割,可以规定分割次数(分割几次),分割后参数不存在
后者从右开始分割
t10 = 'adsfgshjksyt'
a27 = t10.split('s', 2) # 重点:
a28 = t10.rsplit('s')
将字符串中按换行符分割,参数为True保留换行符,false则不保留
t11 = 'asd\nfdset\ndwerewr'
a29 = t11.splitlines(True)
将字符串中大小写反转
t12 = 'AbCdEfG'
a30 = t12.swapcase()
============= 进阶处理 ============
通过索引下标获取字符串中某一个字符
x = 'python'
c = x[2]
通过索引下标获取字符串中某些字符(字符串切片)
x = 'python'
c1 = x[0:4:2] # 范围 >=0,<4,步长为2
查看字符串长度
x = 'python'
c2 = len(x)
#print(c, c1, c2)
for循环
x = 'python'
for i in x:
pass
""""
# 字符串在内存中一旦创建就不可修改,若修改或拼接,则会在内存中重新创建一个
"""
创建自定义范围数字
for i in range(0, 100, 3): # 左闭右开
pass
okk,仅作学习记录,如有错误,请各位前辈多多指教