• 知识点总结 2022-8-15


    拆分类函数:

    partition(sep)  在字符串中搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 ('在sep前面的部分', 'sep', '在sep后面的部分');如果未找到,则返回 ('原字符串', '', '')

    1. "www.baidu.com".partition(".")
    2. ('www', '.', 'baidu.com')

    rpartition(sep) 在字符串中自右向左搜索sep参数指定的分隔符,如果找到,返回一个 3 元组 ('在sep前面的部分', 'sep', '在sep后面的部分');如果未找到,则返回 ('', '', '原字符串')

    split(sep=None, maxsplit=-1) 将字符串进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
     

    1. >>> "苟日新,日日新,又日新".split(",")
    2. ['苟日新', '日日新', '又日新']
    3. >>> "苟日新,日日新,又日新".rsplit(",")
    4. ['苟日新', '日日新', '又日新']
    5. >>> "苟日新,日日新,又日新".split(",", 1)
    6. ['苟日新', '日日新,又日新']
    7. >>> "苟日新,日日新,又日新".rsplit(",", 1)
    8. ['苟日新,日日新', '又日新']

    rsplit(sep=None, maxsplit=-1) 将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制

    splitlines(keepends=False) 将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含  (splitlines可以自动识别\n\r等换行符)
     

    拼接类函数:

    join(iterable)  连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间(join函数拼接速度比使用加法运算快很多)

    1. "@".join(("我", "喜欢", "你"))
    2. '我@喜欢@你'
    3. "".join(("我", "喜欢你"))
    4. '我喜欢你'

    创建集合的三种方法:

    使用花括号,元素之间以逗号分隔:{"abc", "bcd"}

    使用集合推导式:{s for s in "abc"}

    使用类型构造器,也就是set(): set("abc")

    集合的运算:

    Python 也提供了相应的运算符,可以直接进行运算。

    检测子集可以使用小于等于号(<=)

    1. >>> s <= set("FishC")
    2. True

    那么检测真子集我们可以使用小于号(<)

    使用大于号(>)和大于等于号(>=)就是检测真超集和超集

    并集使用管道符(|):

    1. >>> s | {1, 2, 3} | set("Python")
    2. {1, 2, 3, 'y', 'h', 'n', 'i', 'P', 's', 'o', 't', 'C', 'F'}

    交集使用 and 符号(&)

    差集使用减号(-)

    对称差集使用脱字符(^)

    注意:使用运算符的话,符号两边都必须是集合类型的数据才可以,不然会报错。

    闭包:

    是指在一个函数内部中,对外部作用域的变量进行引用,并且一般内部函数作为外部函数的返回值,那么内部函数就被认为是闭包。

    1. >>> def power(exp):
    2. ... def exp_of(base):
    3. ... return base ** exp
    4. ... return exp_of
    5. ...
    6. >>> square = power(2)
    7. >>> cube = power(3)
    8. >>> square
    9. locals>.exp_of at 0x000001CF6A1FAF70>
    10. >>> square(2)
    11. 4
    12. >>> square(5)
    13. 25
    14. >>> cube(2)
    15. 8
    16. >>> cube(5)
    17. 125

    装饰器:

    在不修改函数的情况下添加新功能,拿函数当参数。

    1. import time
    2. def time_master(func):
    3. def call_func():
    4. print("开始运行程序...")
    5. start = time.time()
    6. func()
    7. stop = time.time()
    8. print("结束程序运行...")
    9. print(f"一共耗费了 {(stop-start):.2f} 秒。")
    10. return call_func
    11. @time_master
    12. def myfunc():
    13. time.sleep(2)
    14. print("I love you")
    15. myfunc()

    等价于

    1. import time
    2. def time_master(func):
    3. def call_func():
    4. print("开始运行程序...")
    5. start = time.time()
    6. func()
    7. stop = time.time()
    8. print("结束程序运行...")
    9. print(f"一共耗费了 {(stop-start):.2f} 秒。")
    10. return call_func
    11. def myfunc():
    12. time.sleep(2)
    13. print("I love you.")
    14. myfunc = time_master(myfunc)
    15. myfunc()

  • 相关阅读:
    有一个班,3个学生,各学4门课,计算总平均分,以及第n个学生的成绩
    探寻容器的本质
    Android java基础_泛型
    怕客户跑单?这套上市制造企业都在使的订单管理方案你一定要看看
    黄州科目三
    win10 安装 node.js
    深入在线文档系统的 MarkDown/Word/PDF 导出能力设计
    Python应该如何系统的自学?(零基础入门必看)
    在3dmax建好的模型导入到模方映射纹理,这个模型偏移设置该如何设置?默认的话,模型会偏移
    “攻城狮”如何写高逼格的代码
  • 原文地址:https://blog.csdn.net/m0_63619203/article/details/126352243