拆分类函数:
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
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()