本文目录一览:
Python处理字符串必备方法
字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它。
▍1、Slicing
slicing切片,按照一定条件从列表或者元组中取出部分元素(比如特定范围、索引、分割值)
▍2、****strip()
strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
在使用strip()方法时,默认去除空格或换行符,所以#号并没有去除。
可以给strip()方法添加指定字符,如下所示。
此外当指定内容不在头尾处时,并不会被去除。
第一个\n前有个空格,所以只会去取尾部的换行符。
最后strip()方法的参数是剥离其值的所有组合,这个可以看下面这个案例。
最外层的首字符和尾字符参数值将从字符串中剥离。字符从前端移除,直到到达一个不包含在字符集中的字符串字符为止。
在尾部也会发生类似的动作。
▍3、****lstrip()
移除字符串左侧指定的字符(默认为空格或换行符)或字符序列。
同样的,可以移除左侧所有包含在字符集中的字符串。
▍4、rstrip()
移除字符串右侧指定的字符(默认为空格或换行符)或字符序列。
▍5、****removeprefix()
Python3.9中移除前缀的函数。
和strip()相比,并不会把字符集中的字符串进行逐个匹配。
▍6、removesuffix()
Python3.9中移除后缀的函数。
▍7、****replace()
把字符串中的内容替换成指定的内容。
▍8、****re.sub()
re是正则的表达式,sub是substitute表示替换。
re.sub则是相对复杂点的替换。
和replace()做对比,使用re.sub()进行替换操作,确实更高级点。
▍9、****split()
对字符串做分隔处理,最终的结果是一个列表。
当不指定分隔符时,默认按空格分隔。
此外,还可以指定字符串的分隔次数。
▍10、****rsplit()
从右侧开始对字符串进行分隔。
▍11、****join()
string.join(seq)。以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串。
▍12、****upper()
将字符串中的字母,全部转换为大写。
▍13、****lower()
将字符串中的字母,全部转换为小写。
▍14、capitalize()
将字符串中的首个字母转换为大写。
▍15、****islower()
判断字符串中的所有字母是否都为小写,是则返回True,否则返回False。
▍16、isupper()
判断字符串中的所有字母是否都为大写,是则返回True,否则返回False。
▍17、****isalpha()
如果字符串至少有一个字符并且所有字符都是字母,则返回 True,否则返回 False。
▍18、isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False。
▍19、isalnum()
如果字符串中至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回 False。
▍20、count()
返回指定内容在字符串中出现的次数。
▍21、****find()
检测指定内容是否包含在字符串中,如果是返回开始的索引值,否则返回-1。
此外,还可以指定开始的范围。
▍22、rfind()
类似于find()函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。
▍23、startswith()
检查字符串是否是以指定内容开头,是则返回 True,否则返回 False。
**
**
▍24、****endswith()
检查字符串是否是以指定内容结束,是则返回 True,否则返回 False。
▍25、****partition()
string.partition(str),有点像find()和split()的结合体。
从str出现的第一个位置起,把字符串string分成一个3 元素的元组(string_pre_str,str,string_post_str),如果string中不包含str则 string_pre_str==string。
▍26、center()
返回一个原字符串居中,并使用空格填充至长度width的新字符串。
▍27、ljust()
返回一个原字符串左对齐,并使用空格填充至长度width的新字符串。
▍28、rjust()
返回一个原字符串右对齐,并使用空格填充至长度width的新字符串。
▍29、f-Strings
f-string是格式化字符串的新语法。
与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!
▍30、swapcase()
翻转字符串中的字母大小写。
▍31、zfill()
string.zfill(width)。
返回长度为width的字符串,原字符串string右对齐,前面填充0。
参考文献:
Python魔法函数(特殊函数)
Python中如何实现运算符的重载,即实现例如a+b这样的运算符操作呢?
在C++中可以使用 operator 关键字实现运算符的重载。但是在Python中没有类似这样的关键字,所以要实现运算符的重载,就要用到Python的魔法函数。Python魔法函数是以双下划线开头,双下划线结尾的一组函数。我们在类定义中最常用到的 __init__ 函数就是这样一个魔法函数,它在创建类对象时被自动调用。
下面我们来看个简单的例子。
上述代码示例了几个魔法函数的用法。 __add__ 函数对应了二元运算符+,当执行a+b语句时,python就会自动调用a. add (b)。 对于上述例子中的v1+v2+v3,则相当于调用了(v1. add(v2)). add(v3)。
代码中还有一个在Python类定义经常使用的 __str__ 函数,当使用 str() 时会被调用。print函数对传入的参数都调用了str()将其转换成易读的字符串形式,便于打印输出,因而会调用类定义的__str__函数打出自定义的字符串。
代码中还有一个特殊的 __call__ 函数,该函数在将对象采用函数调用方式使用时被调用, 例如v1()相当于v1. call ()。
以上就是魔法函数的基本使用方法。常见的魔法函数我们可以使用 dir() 函数来查看。
输出结果为:
上述结果中形式为‘__函数名__’的函数为魔法函数,注意有些对象也是这种形式,例如__class__, __module__等, 这些不是魔法函数。具体的魔法函数说明可以参考Python官方说明文档。
以上代码在Python3.6运行通过.
python 字符串提取信息方法总结
在日常项目中,我们经常会使用python从字符串中提取我们想要的信息,以下是各种提取信息方法的总结。
格式: str[beg:end:step]
描述: 字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时步长为1
举例:
print(str[::2]) //::这里表示整个字符串,每两个位置提取一个
print(str[1:3]) //提取第2个到第3个
print(str[2::]) //截取2 - 末尾的字符
本小节介绍了,处理字符串经常用到的一些函数方法。
语法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
语法: str.split(str="", num=string.count(str)).
描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串.返回分割后的字符串列表,该方法可以讲字符串转化为列表处理。
另外的: str.splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
语法: str.partition(str)
描述: partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
语法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法: str.strip([chars]);
描述: Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法: str.join(sequence)
描述: Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
上述方法还有其变形,如str.rfind(),这代表从字符串右边开始处理,正常是从左边开始处理。下表是其它常用的python字符串自带函数方法。
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本小节主要介绍Python中常用的正则表达式处理函数和正则表达式的书写规则。
re 模块使 Python 语言拥有全部的正则表达式功能。所以在python中使用正则表达式处理函数需要import re
语法: re.search(pattern, string, flags=0)
描述: re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。
语法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
语法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
模式字符串使用特殊的语法来表示一个正则表达式:
python魔法方法是什么
魔方方法是Python的内置方法,无需主动调用,主要目的就是为了给Python的解释器进行调用,而且每个魔方方法都有一个对应的内置函数或运算符,接下来我们来看看具体的介绍。
魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个, 那么这个方法就会在特殊的情况下被Python所调用,你可以定义自己想要的行为,而这一切都是自动发 生的,它们经常是两个下划线包围来命名的(比如 __init___ , __len__ ),Python的魔法方法是非常强大的所以了解其使用方法也变得尤为重要!
__init__ 构造器,当一个实例被创建的时候初始化的方法,但是它并不是实例化调用的第一个方法。
__new__ 才是实例化对象调用的第一个方法,它只取下cls参数,并把其他参数传给 __init___。
___new__ 很少使用,但是也有它适合的场景,尤其是当类继承自一个像元祖或者字符串这样不经常改变的类型的时候。
__call__ 让一个类的实例像函数一样被调用。
__getitem__ 定义获取容器中指定元素的行为,相当于self[key]。
__getattr__ 定义当用户试图访问一个不存在属性的时候的行为。
__setattr__ 定义当一个属性被设置的时候的行为。
__getattribute___ 定义当一个属性被访问的时候的行为。