python 除了熟悉的numpy、pandas处理数据外,常会用到处理字符串的内容。
准备import string # ps : 对字符串处理,需注意字符串是不可变类型,原字符串不变。 e.g: str = "Kobe 81 forever" # 今天是科比拿下81分的日子,怀念Kobe str[0:4] == "Kobe"代码实例 1. 判断是否字符串
由于python注重对象的格式类型,所以先判断字符串,均返回 T/F。
常用于非空集合(避免写循环)、问题排查、是否提取数字、文字等操作;
str.islower() # 判断是否字符串全部为小写,字符串至少有一个字符 str.isupper() # 判断是否字符串全部为大写,字符串至少有一个字符 str.istitle() # 判断是否字符串标题化,即所有单词的首字母都转化为大写 比如:Kobe Forever 即True title() => 标题化 str.isalpha() # 判断是否字符串全部字母组成 str.isdigit() # 判断是否字符串只包含数字 str.isnumeric() # 判断是否字符串全部由数字组成,中文数字(零、一、二等,繁体也算) str.isalnum() # 判断是否字符串由字母和数字组成,不含空格等 str.isidentifier() # 判断是否字符串合法标识符 ,即除字符、数字、下划线外都不行; str.isspace() # 判断是否字符只有空白字符:即回车、换行和水平制表符 str.isdecimal() # 判断是否字符全部由十进制的数字组成,不包括中文、罗马字符 str.isascii() # 判断是否字符串为空或字符串中都是ASCII str.isprintable() # 判断是否所有字符是否都可打印的。2. 字符串的大小比较
max(str) # 26个字母最后的 min(str) # 26个字母最前的,空格优于字符 str > str.lower() # 返回T/F ord(str) # 将指定字符转换为原始值 chr(98) # ASCII3.大小写转换
str.upper() # 将字符串中所有元素都转为大写 str.lower() # 将字符串中所有元素都转为小写 str.swapcase() # 交换大小写 str.capitalize() # 第一个单词第一次字符大写,其余小写 str.title() # 每个单词的第一个字符大写,其余小写4.去除两端多余字符
str.strip() # 去掉两边的空白 str.lstrip() # 去掉左边的字符 str.rstrip() # 去掉右边的字符 str.strip() # 去掉左右边的字符5.字符串补齐长度
同hive的LPAd(STRING a, INT len, STRING b)
2个参数,字符串长度以及补充的字符内容;
str.center(20,'a') # 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 str.ljust(20,'a') # 在右补齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 str.rjust(20,'a') # 在左补齐,并使用fillchar(默认空格)填充至长度 width 的新字符串. str.zfill(20) # 即zero fill 左侧填充0补齐.6.字符串查询
find(str, beg=0, end=len(string)) # 查找str第一次出现的位置,如果找到则返回相应的索引,否则返回-1 rfind(str, beg=0, end=len(string)) # 同find(),从右边开始 index(str, beg=0, end=len(string)) # 同find(),只不过如果没找到会报异常。因报异常 一般不用 rindex(str, beg=0,end=len(string)) # 类似于rfind,如果没有匹配的字符串会报异常 str_tmp = 'Nike' str.find(str_tmp) # 全部查找 str.find(str_tmp,5) # 从第5个元素开始查找 str.rfind(str_tmp) # 从右开始找 str.index(str_tmp) str.rindex(str_tmp)7.分割字符串
str.split() # 以空格进行分割
str.split("e")[0] # 以e进行分割,取第一位
str.rsplit() # 同split类似,从右边开始
str.splitlines() # 按照行进行分割,得到新的列表
str.partition("str") # 找到第一个str,以str为界,将字符串分割为3部分,返回一个新的元组
str.rpartition("str") # 反向partition,分割为3部分,返回一个新的元组
8.合并与替换
" ".join(str) # 空格拼接str的每一个子字符
replace(old, new [, max]) # old替换成new, max(非必填)替换次数
str.replace('81','24')
9.判断开头结尾字符串
str.startswith('Kobe') # 以XX开头,返回T/F
str.endswith('Kobe') # 以XX结尾,返回T/F
10.字符串计数
count(sub, start= 0,end=len(string)) # 在字符串[start,end)范围内,计算sub字符串的个数
str.count("e")
str.count("e",0,8) # 指定字符范围内
结束语
字符串部分到此结束,基本能满足日常大部分需求。
希望本文有大家有帮助, 如有错误,欢迎指正。
本文地址:https://blog.csdn.net/weixin_41613094/article/details/122654178



