• python字符串操作


    基础

    1. 获取字符串长度: len(str)
    2. 子串str1在字符串str中出现的次数: str.count(str1)
    3. 字串str1在字符串str中第一次出现的索引: str.index(str1)

    判断类型

    判断字符串中字符的类型

    str = 'Hello World'
    print(str.isspace())    # False   str中值包含空格
    print(str.isalnum())    # False   str中所有字符都是字母/数字
    print(str.isalpha())    # False   str中所有字符都是字母
    print(str.isdecimal())  # False   str中所有字符都是数字
    print(str.istitle())    # True    str中每个单词首字母大写(标题化)
    print(str.islower())    # False   str中所有字符都是小写
    print(str.isupper())    # False   str中所有字符都是大写
    

    查找和替换

    str = 'Hello World'
    print(str.startswith('Hello'))      		# True 	str以指定子串开头(区分大小写)
    print(str.endswith('world'))       		# False str以指定子串结尾(区分大小写)
    print(str.find('llo', 0, 5))        		# 2 	str在指定范围0~5内查询子串,若存在返回子串索引,不存在则返回-1
    print(str.rfind('l', 0, 5))         		# 	类似于find(),只是从右边开始查找
    print(str.index('llo', 0, len(str)))   	        # 2 	str在指定范围内查询子串,若存在返回子串索引,不存在则报错
    print(str.rindex('llo', 0, len(str)))  	        # 2  	类似于find(),只是从右边开始查找
    print(str.replace('llo', 'oll', str1.count('llo')))     # 'Heoll World' str中new_str替换old_str, 替换次数 <= 指定次数
    print(str.replace('lla', 'ool', 2))             # 'Hello World' 当str中不存在old_str时,返回str本身
    

    大小写替换

    str = 'Hello World'
    print(str.lower())   	# 'hello world'  将str中所有字符小写
    print(str.upper())   	# 'HELLO WORLD'  将str中所有字符大写
    print(str.title())   	# 'Hello World'  将str中每个单词首字母大写(标题化)
    print(str.capitalize()) # 'Hello world'  将字符串首字母大写,其他全部小写
    print(str.swapcase())   # 'hELLO wORLD'  翻转str中的大小写
    

    去除空白字符

    str = '
    abc	'
    print(str.strip())   # 'abc'    去除str两边的空白字符
    print(str.lstrip())  # 'abc	'  去除str左边的空白字符
    print(str.rstrip())  # '
    abc'  去除str右边的空白字符
    

    拆分

    str = '
    a	b c	'
    print(str.split())   	# ['a', 'b', 'c']   按空白字符切分字符串为列表
    print(str.split(' '))  	# ['
    a	b', 'c	'] 按空格切分字符串为列表
    

    字符拼接

    1. "+"

    2. .join() 将列表转化为字符串

    str = ['hello', 'world', 'everyone']
    print('*'.join(str))   # hello*world*everyone
    print(''.join(str))    # helloworldeveryone
    

    1. .format() 字符串中{}数量和format()参数个数必须一致
    str = '{} {}!'.format('hello', 'world') 	# hello world!
    

    1. %
    str = '%s, %s!' % ('hello', 'world')		  # hello,world!
    

    1. string.Template()
      首先通过Template初始化一个字符串。这些字符串中包含了一个个key。
      通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串。
      这种方式的好处是不需要担心参数不一致引发异常
    from string import Template
    str = Template('${s1} ${s2} ${s3}!')
    print(str4.safe_substitute(s1='hello', s2='world'))  # hello world ${s3}!
    

    1. F-strings
    s1 = 'hello'
    s2 = 'world'
    print(f'{s1} {s2}!')   # hello world!
    

    切片

    使用索引值来限定范围,从一个大的字符串切出小的字符串.
    适用于字符串、列表、元祖,不支持字典
    str[start: end: step]

    • 默认start=0, end=len(str), step=1
    • 第一个字符索引=0 or -len(str); 第二个字符索引=-1 or len(str)
    • step的正负决定切片的方向: 负数(逆序)、正数(顺序)
      本质:调用魔法函数__getitem__()
    str = '0123456789'
    print(str[0:3])     		# 012
    print(str[:3])      		# 012         索引:0 ~ (3-1)
    print(str[3:])      		# 3456789     索引:3 ~ 最后
    print(str[3::2])    		# 3579
    print(str[::2])     		# 02468
    print(str[0:len(str)])          # 0123456789  索引: 0 ~ len(str)-1
    print(str[-1])     	        # 9           索引: 最大
    print(str[0:-1])   		# 012345678   索引: 0 ~ (最大-1)
    print(str[::-1])   		# 9876543210  从0 ~ 最后 逆序切
    print(str[:5])     		# 01234       索引:0 ~ 5
    print(str[-5:])    		# 56789       索引: -5 ~ -1
    print(str[-1:0:-1])  		# 987654321
    print(str[-1:-len(str):-1])     # 987654321
    

    string

    import string
    
    # 获取大小写字母集
    print(string.ascii_letters)	# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    
    # 获取小写字母集
    print(string.ascii_lowercase)	# abcdefghijklmnopqrstuvwxyz
    
    # 获取大写字母集
    print(string.ascii_uppercase)	# ABCDEFGHIJKLMNOPQRSTUVWXYZ
    
    # 获取数字
    print(string.digits)		# 0123456789
    
    # 获取大小写字母和特殊字符集
    print(string.printable)	        # 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[]^_`{|}~
    
    # 获取特殊字符
    print(string.punctuation)	# !"#$%&'()*+,-./:;<=>?@[]^_`{|}~
    
    # 获取16进制字符
    print(string.hexdigits) 	# 0123456789abcdefABCDEF
    
  • 相关阅读:
    纸壳CMS替换默认实现
    ASP.Net Core 2.2 InProcess托管的Bug:unable to open database file
    GitHub设置使用SSH Key,用TortoiseGit进行Clone仓库
    在Docker中运行纸壳CMS并配置使用MySql
    使用vs code开发纸壳CMS并启用Razor智能提示
    ASP .Net Core路由(Route)
    .Net Core在Middleware中解析RouteData
    纸壳CMS可视化建站系统搭建多语言网站
    Redis的初识
    C#/Java 动态生成电子发票
  • 原文地址:https://www.cnblogs.com/ericness/p/12656213.html
Copyright © 2020-2023  润新知