拆分类函数:
partition(sep) 在字符串中搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (‘原字符串’, ”, ”)
"www.baidu.com".partition(".")
('www', '.', 'baidu.com')
rpartition(sep) 在字符串中自右向左搜索sep参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (”, ”, ‘原字符串’)
split(sep=None, maxsplit=-1) 将字符串进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
>>> "苟日新,日日新,又日新".split(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".rsplit(",")
['苟日新', '日日新', '又日新']
>>> "苟日新,日日新,又日新".split(",", 1)
['苟日新', '日日新,又日新']
>>> "苟日新,日日新,又日新".rsplit(",", 1)
['苟日新,日日新', '又日新']
rsplit(sep=None, maxsplit=-1) 将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
splitlines(keepends=False) 将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含 (splitlines可以自动识别\n\r等换行符)
拼接类函数:
join(iterable) 连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间(join函数拼接速度比使用加法运算快很多)
"@".join(("我", "喜欢", "你"))
'我@喜欢@你'
"".join(("我", "喜欢你"))
'我喜欢你'
创建集合的三种方法:
使用花括号,元素之间以逗号分隔:{“abc”, “bcd”}
使用集合推导式:{s for s in “abc”}
使用类型构造器,也就是set(): set(“abc”)
集合的运算:
Python 也提供了相应的运算符,可以直接进行运算。
检测子集可以使用小于等于号(<=)
>>> s <= set("FishC")
True
那么检测真子集我们可以使用小于号(<)
使用大于号(>)和大于等于号(>=)就是检测真超集和超集
并集使用管道符(|):
>>> s | {1, 2, 3} | set("Python")
{1, 2, 3, 'y', 'h', 'n', 'i', 'P', 's', 'o', 't', 'C', 'F'}
交集使用 and 符号(&)
差集使用减号(-)
对称差集使用脱字符(^)
注意:使用运算符的话,符号两边都必须是集合类型的数据才可以,不然会报错。
闭包:
是指在一个函数内部中,对外部
作用域
的变量进行引用,并且一般内部函数作为外部函数的返回值,那么内部函数就被认为是闭包。
>>> def power(exp):
... def exp_of(base):
... return base ** exp
... return exp_of
...
>>> square = power(2)
>>> cube = power(3)
>>> square
<function power.<locals>.exp_of at 0x000001CF6A1FAF70>
>>> square(2)
4
>>> square(5)
25
>>> cube(2)
8
>>> cube(5)
125
装饰器:
在不修改函数的情况下添加新功能,拿函数当参数。
import time
def time_master(func):
def call_func():
print("开始运行程序...")
start = time.time()
func()
stop = time.time()
print("结束程序运行...")
print(f"一共耗费了 {(stop-start):.2f} 秒。")
return call_func
@time_master
def myfunc():
time.sleep(2)
print("I love you")
myfunc()
等价于
import time
def time_master(func):
def call_func():
print("开始运行程序...")
start = time.time()
func()
stop = time.time()
print("结束程序运行...")
print(f"一共耗费了 {(stop-start):.2f} 秒。")
return call_func
def myfunc():
time.sleep(2)
print("I love you.")
myfunc = time_master(myfunc)
myfunc()