2024速通Python之深入学习Python

文章目录

  • 一、数据容器
  • 1.list列表
  • (1)定义
  • (2)常用方法
  • 2.元组
  • (1)定义
  • 3.字符串常用操作汇总
  • (1)根据下标索引取出特定位置字符
  • (2)查找给定字符的第一个匹配项的下标
  • (3)将字符串内的全部字符串1,替换为字符串2
  • (4)按照给定字符串,对字符串进行分隔
  • (5)移除首尾的空格和换行符或指定字符串
  • (6)统计字符串内某字符串的出现次数
  • 4.序列
  • 5.集合
  • (1)定义
  • (2)常用方法
  • 6.字典
  • (1)定义
  • (2)常用方法
  • 二、函数
  • 1.函数多返回值
  • 2.函数多种传参方式
  • (1)位置参数
  • (2)关键字参数
  • (3)缺省参数
  • (4)不定长参数
  • 3.lambda匿名函数
  • 「章节总览」
     
          【2024速通python之python基础 https://blog.csdn.net/weixin_45404884/article/details/138578955】
          【2024速通python之python进阶 https://blog.csdn.net/weixin_45404884/article/details/138663338】
          【2024速通python之python高阶 https://blog.csdn.net/weixin_45404884/article/details/138810133】

    一、数据容器

    1.list列表

    (1)定义

    name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    print(name_list)
    
    # 将列表遍历输出
    for name in name_list:
        print(name)
    
    # 输出name_list类型
    print(type(name_list))
    

    (2)常用方法

  • 按下标索引
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    print(name_list[0])
    
  • 反向索引
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    print(name_list[-4])
    
  • 查找某元素下标
  • print(name_list.index('wangwu'))
    
  • 指定位置插入元素
    列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    name_list.insert(1, 'sss')
    print(name_list)
    
  • 追加元素
    列表.append(元素),将指定元素,追加到列表的尾部
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    name_list.append('sss')
    print(name_list)
    

    列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部

    name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    other_list = ['sss', 'ddd']
    name_list.extend(other_list)
    print(name_list)
    
  • 删除元素
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    # 方式一
    del name_list[0]
    # 方式二
    name_list.pop(0)
    print(name_list)
    
  • 删除某元素在列表中的第一个匹配项
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
    name_list.remove('lisi')
    print(name_list)
    
    
  • 清空列表
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
    name_list.clear()
    print(name_list)
    
  • 统计某元素在列表内的数量
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
    print(name_list.count('lisi'))
    
  • 列表长度
  • name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
    print(len(name_list))
    

    2.元组

    元组一旦定义完成,就不可修改

    (1)定义

    name_list = ('zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi')
    print(name_list)
    

    3.字符串常用操作汇总

    (1)根据下标索引取出特定位置字符

    name = 'hello world'
    print(name[0])
    
    

    (2)查找给定字符的第一个匹配项的下标

    name = 'hello world'
    print(name.index('h'))
    

    (3)将字符串内的全部字符串1,替换为字符串2

    name = 'hello world'
    newName = name.replace('world', 'city')
    print(newName)
    

    (4)按照给定字符串,对字符串进行分隔

    name = 'hello world'
    newName = name.split(' ')
    print(newName)
    

    (5)移除首尾的空格和换行符或指定字符串

    name1 = ' hello world '
    name2 = '12hello world21'
    newName1 = name1.strip(' ')
    newName2 = name2.strip('12')
    print(newName1)
    print(newName2)
    
    

    (6)统计字符串内某字符串的出现次数

    name1 = 'hello world'
    print(name1.count('o'))
    

    4.序列

    序列是指:内容连续、有序,可使用下标索引的一类数据容器。
    列表、元组、字符串,均可以可以视为序列。
    序列支持切片,即:列表、元组、字符串,均支持进行切片操作。
    切片:从一个序列中,取出一个子序列。
    语法:序列[起始下标:结束下标:步长]
    表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列。

  • 起始下标表示从何处开始,可以留空,留空视作从头开始
  • 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
  • 步长表示,依次取元素的间隔
  • 步长1表示,一个个取元素
  • 步长2表示,每次跳过1个元素取
  • 步长N表示,每次跳过N-1个元素取
  • 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
  • my_list = [1, 2, 3, 4, 5]
    new_list = my_list[1:4]	# 下标1开始,下标4(不含)结束,步长1
    print(new_list)		# 结果:[2, 3, 4]
    
    my_list = [1, 2, 3, 4, 5]
    new_list = my_list[::2]		# 从头开始,到最后结束,步长2
    print(new_list)		# 结果:[1, 3, 5]
    

    5.集合

    去重且无序

    (1)定义

    my_list = {1, 2, 3, 4, 5}
    print(my_list)
    

    (2)常用方法

  • 集合内添加一个元素
  • my_list = {'1', '2', '3', '4', '5'}
    my_list.add('111')
    print(my_list)
    
  • 移除集合内指定的元素
  • my_list = {'1', '2', '3', '4', '5'}
    my_list.remove('3')
    print(my_list)
    
    
  • 随机取出一个元素
  • my_list = {'1', '2', '3', '4', '5'}
    print(my_list.pop())
    
  • 清空
  • my_list = {'1', '2', '3', '4', '5'}
    my_list.clear()
    print(my_list)
    
  • 2个集合的差集
  • my_list1 = {'1', '2', '3', '4'}
    my_list2 = {'2', '3', '4', '5'}
    my_list3 = my_list1.difference(my_list2)
    print(my_list3)
    
  • 2个集合的并集
  • my_list1 = {'1', '2', '3', '4'}
    my_list2 = {'2', '3', '4', '5'}
    my_list3 = my_list1.union(my_list2)
    
    print(my_list3)
    

    6.字典

    (1)定义

    字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法:
    {key:value}
    字典内Key不允许重复,重复添加等同于覆盖原有数据

    my_dict = {1: 'one', 2: 'two', 3: 'three'}
    print(my_dict)
    

    (2)常用方法

  • 获取字典的全部Key,可用于for循环遍历字典
  • my_dict = {1: 'one', 2: 'two', 3: 'three'}
    print(my_dict.keys())
    
  • 取出Key对应的Value并在字典内删除此Key的键值对
  • my_dict = {1: 'one', 2: 'two', 3: 'three'}
    my_dict.pop(1)
    print(my_dict)
    

    二、函数

    1.函数多返回值

  • 按照返回值的顺序,写对应顺序的多个变量接收即可
  • 变量之间用逗号隔开
  • def test():
        return "a", 1
    
    
    x, y = test()
    print(x)
    print(y)
    

    2.函数多种传参方式

    (1)位置参数

    调用函数时根据函数定义的参数位置来传递参数

    def test(x, y):
        print('x====', x)
        print('y====', y)
    
    
    test(1, 2)
    

    (2)关键字参数

    函数调用时通过“键=值”形式传递参数
    ** kwargs 表示关键字参数, 它本质上是一个 dict

    def test(**kwargs):
        print(kwargs)
    
    
    test(x=1, y=2, z=3, a=4)
    

    (3)缺省参数

    不传值,默认z赋值为1

    def test(x, y, z=1):
        print(x)
        print(y)
        print(z)
    
    
    test(1, 2)
    test(1, 2, 3)
    

    (4)不定长参数

    *args 表示任何多个无名参数, 他本质上是一个 tuple

    def test(*args):
        print('x====', args)
    
    
    test(1, 2)
    

    3.lambda匿名函数

  • lambda 传入函数 :函数体(一行代码)

  • 匿名函数用于临时构建一个函数,只用一次的场景

  • 匿名函数的定义中,函数体只能写一行代码,如果函数体要写多行代码,不可用lambda 匿名函数,应使用def定义带名函数

  • def test(compute):
        result = compute(1, 2)
        print(result)
    
    
    test(lambda x, y: x + y)
    

    作者:西敏寺的乐章

    物联沃分享整理
    物联沃-IOTWORD物联网 » 2024速通Python之深入学习Python

    发表回复