知识点总结 2022-8-15

  • Post author:
  • Post category:其他


拆分类函数:

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()



版权声明:本文为m0_63619203原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。