• Python公共操作和推导式



    1 公共操作

    1.1 运算符

    运算符支持的容器类型
    +(合并)字符串、列表、元组
    *(复制)字符串、列表、元组
    in(元素是否存在)字符串、列表、元组、字典
    not in(元素是否不存在)字符串、列表、元组、字典
    str1='aaa'
    str2='bbb'
    
    tuple1=( 10 , 20)
    tuple2=('ccc','ddd')
    
    list1=[10,20]
    list2=['iii','jjj']
    
    dict1={'name':'YYQX'}
    dict2={'age':20}
    
    print(str1+str2)
    print(tuple2+tuple1)
    print(list1+list2)
    print(str1*3) #将字符串复制三份
    print(tuple2*3)
    print(list2*3)
    print('a' in str1)
    print('a' not in str1)
    print('name' in dict1)
    print('age' in dict2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    运行结果
    在这里插入图片描述

    1.2 公共方法

    函数描述
    len()计算容器中元素个数
    del或del()删除
    max()返回容器中元素最大值
    min()返回容器中元素最小值
    range(start,end,step)生成从start到end的数字,步长为step,供for循环使用(range()生成的序列不包含end数字)相当于javai++ i=i+2
    enumerate()函数用于将一个可遍历的数据对象(如列表、元组和字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中
    str1='abcd'
    list1=[10,20,30,40,50]
    tuple1=(10,20,30,40,50)
    set1={10,20,30,40,50}
    dict1={'name':'YYQX','age':18}
    print(len(str1))
    print(len(list1))
    print(len(tuple1))
    print(len(set1))
    print(len(dict1))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果
    在这里插入图片描述

    str1='abcd'
    list1=[10,20,30,40,50]
    tuple1=(10,20,30,40,50)
    set1={10,20,30,40,50}
    dict1={'name':'YYQX','age':18}
    del(list1[0])
    print(list1[0])
    del dict1['age']
    print(dict1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行结果
    在这里插入图片描述

    str1='abcd'
    list1=[10,20,30,40,50]
    tuple1=(10,20,30,40,50)
    set1={10,20,30,40,50}
    dict1={'name':'YYQX','age':18}
    print(max(str1))
    print(max(list1))
    print(max(tuple1))
    print(max(set1))
    print(max(dict1))
    print(min(dict1))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果
    在这里插入图片描述

    for i in range(1,10,1):
        print(i,end=' ')
    print()
    for i in range(1,10,2):
        print(i,end=' ')
    print()
    for i in range(10):
        print(i,end=' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行结果
    在这里插入图片描述

    #enumerate()
    #语法:enumerate(可遍历对象,start=0)
    #start参数用来设置遍历数据的下标的起始值,默认为0
    list1=['a','b','c','d','e']
    for i in enumerate(list1):
        print(i)
    print()
    #返回数据是元组,元组第一个数据是原迭代对象的数据对应的下标
    #元组第二个数据是原迭代对象的数据
    for i in enumerate(list1,start=1):
        print(i)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果
    在这里插入图片描述

    1.3 容器类型转换

    • tuple():将某个序列转换成元组
    • list():将某个序列转换成列表
    • set():将某个序列转换成集合
    list1=[10,20,20,30]
    tuple1=(40,50,60,40)
    set1={70,80,90,90}
    print(tuple(list1))
    print(tuple(set1))
    print(list(tuple1))
    print(list(set1))
    print(set(list1))
    print(set(tuple1))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行结果
    在这里插入图片描述

    2 推导式

    2.1 列表推导式

    作用:用⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。

    列表推导式又叫列表生成式

    2.1.1 快速体验

    需求:创建⼀个0-10的列表。

    while循环实现

    # 1. 准备⼀个空列表
    list1 = []
    # 2. 书写循环,依次追加数字到空列表list1中 
    i = 0
    while i < 10:
        list1.append(i)
        i += 1
    print(list1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行结果
    在这里插入图片描述

    for循环实现

    list1 = []
    for i in range(10):
        list1.append(i)
    print(list1)
    
    • 1
    • 2
    • 3
    • 4

    列表推导式实现

    list1 = [i for i in range(10)]
    print(list1)
    
    • 1
    • 2

    2.1.2 带if的列表推导式

    需求:创建0-10的偶数列表

    ⽅法⼀:range()步长实现

    list1 = [i for i in range(0, 10, 2)]
    print(list1)
    
    • 1
    • 2

    ⽅法⼆:if实现

    list1 = [i for i in range(10) if i % 2 == 0]
    print(list1)
    
    • 1
    • 2

    2.1.3 多个for循环实现列表推导式

    需求:创建列表如下:

    [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
    
    • 1

    代码如下:

    list1 = [(i, j) for i in range(1, 3) for j in range(3)]
    print(list1)
    
    • 1
    • 2

    2.2 字典推导式

    思考:如果有如下两个列表:

    list1 = ['name', 'age', 'gender']
    list2 = ['Tom', 20, 'man']
    
    • 1
    • 2

    如何快速合并为⼀个字典?

    答:字典推导式

    字典推导式作用:快速合并列表为字典或提取字典中目标数据。

    2.2.1 快速体验

    1. 创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅。
    dict1 = {i: i**2 for i in range(1, 5)}
    print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16}
    
    • 1
    • 2

    运行结果
    在这里插入图片描述

    1. 将两个列表合并为⼀个字典
    list1 = ['name', 'age', 'gender']
    list2 = ['Tom', 20, 'man']
    dict1 = {list1[i]: list2[i] for i in range(len(list1))}
    print(dict1)
    
    • 1
    • 2
    • 3
    • 4

    运行结果
    在这里插入图片描述

    1. 提取字典中目标数据
    counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
    # 需求:提取上述电脑数量⼤于等于200的字典数据
    count1 = {key: value for key, value in counts.items() if value >= 200}
    print(count1) # {'MBP': 268, 'DELL': 201}
    
    • 1
    • 2
    • 3
    • 4

    运行结果
    在这里插入图片描述

    2.3 集合推导式

    需求:创建⼀个集合,数据为下⽅列表的2次⽅。

    list1 = [1, 1, 2]
    
    • 1

    代码如下:

    list1 = [1, 1, 2]
    set1 = {i ** 2 for i in list1}
    print(set1) # {1, 4}
    
    • 1
    • 2
    • 3

    注意:集合有数据去重功能。

    2.4 总结

    推导式的作用:简化代码

    推导式写法

    # 列表推导式
    [xx for xx in range()]
    # 字典推导式
    {xx1: xx2 for ... in ...}
    # 集合推导式
    {xx for xx in ...}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    【网络安全】XXE漏洞详细解析
    【AI视野·今日CV 计算机视觉论文速览 第255期】Wed, 27 Sep 2023
    国家数据局正式揭牌,数据专业融合型人才迎来发展良机
    解放双手神器-autojs
    linux搭建单机ES,集成ik分词器,文本抽取,Kibana可视化平台
    MySQL数据库的基础操作(简单、基础版
    python如何获取时间和格式化时间和日期 ?
    Flink 1.13(八)CDC
    setContentView源码解析
    网络编程(五)
  • 原文地址:https://blog.csdn.net/ZGL_cyy/article/details/126533453