zoukankan      html  css  js  c++  java
  • 学习python的day8之推导式

    推导式(生成式)

    只有列表,集合,字典有推导式

    一、列表推导式

    创建一个0-10的列表

    while循环实现

    list1 = []
    i = 0
    while i<10:
        list1.append(i)
        i += 1
    print(list1)

    for循环实现

    list1 = []
    for i in range(10):
        list1.append(i)
    print(list1)

    列表推导式实现

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

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

    range()实现

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

    if条件控制

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

    多个for循环列表推导式(相当于for嵌套循环)

    需求:生成列表:[(1,0), (1,1), (1,2), (2,0), (2,1), (2,2)]

    list1 = [(i,j) for i in range(1,3) for j in range(3)]
    print(list1)
    '''
    输出:
    [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
    '''

    二、字典推导式

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

    需求:创建字典key是1-5,value是对应的key的2次方

    dict = {i:i**2 for i in range(1,5)}
    print(dict)
    '''
    输出:
    {1: 1, 2: 4, 3: 9, 4: 16}
    '''

    需求:合并下列两个列表为字典

    list1 = ['name', 'age', 'gender']
    list2 = ['as_scheduled', 19, '男']
    list1 = ['name', 'age', 'gender']
    list2 = ['as_scheduled', 19, '']
    dict2 = {list1[i]:list2[i] for i in range(len(list1))}
    print(dict2)
    '''
    输出:
    {'name': 'as_scheduled', 'age': 19, 'gender': '男'}
    '''

    注意:当两个列表中元素个数不一样时,需要获取元素个数少的列表的长度,获取元素个数多的列表的长度,程序会报错。

    提取字典中的目标数据

    需求:提取value大于100的数据

    dict1 = {'A':150, 'B':89, 'C':261, 'D':92}
    dict2 = {key:value for key,value in dict1.items() if value >100}
    print(dict2)
    '''
    输出:
    {'A': 150, 'C': 261}
    '''

    三、集合

    需求:创建一个集合,是列表[1,1,2,3]的二次方

    list1 = [1, 1, 2, 3, 4]
    set1 = {i**2 for i in list1}
    print(set1)
    '''
    输出:
    {16, 1, 4, 9}
    '''
  • 相关阅读:
    electron—Chromium有酒,Node有肉
    .NET 应用程序运行提示"!!0[] System.Array.Empty()找不到方法"的解决办法
    安装.Net Framework 4.6.2时出现“无法建立到信任根颁发机构的证书链”解决方法
    Electron入门
    npm使用淘宝镜像安装包
    MySQL Unable to convert MySQL date/time value to System.DateTime的解决办法
    axios无法在ie9,10,11环境下运行的问题解决
    解决ini-parser解析ini文件中文乱码问题
    git的tag,branch操作
    java类加载器
  • 原文地址:https://www.cnblogs.com/scheduled/p/13837394.html
Copyright © 2011-2022 走看看