zoukankan      html  css  js  c++  java
  • 推导式

    列表推导式:

    生成列表只要一行代码.以表达式的方式来快捷的生成一个列表数据的一种表达式(效率提高了,但是可读性变差了)
    格式:[计算公式 for X in 可迭代对象 if 条件判断]         计算公式:一个取值规则而已

    执行顺序:先执行   for X in 可迭代对象 部分,然后执行 if 条件判断 , 接着执行 计算公式取值部分,最后把取到的值丢到列表中,所以其返回值类型一定是个列表.

    应用场景:对列表中的数据进行过滤(留下想要的数据,剔除不要的)

    list1 = [(i+1) for i in range(1,101)]
    print(list1)
    # 执行顺序是: 1.for --> 2.if --> 3.i**2
    list1 = [i ** 2 for i in range(1, 11) if i % 2 == 0]
    print(list1)
    """生成列表:  就是返回的列表中有10个'666'字符串 """
    # 推导式不一定使用i,不一定使用range.灵活的很啊
    list1 =['666' for i in range(10)]
    print(list1)
    
    list1 = ['zhangsan', 'lisi', 'wangwu']
    list2 = [name for name in list1 if len(name) > 5]
    print(list2)
    
    # 递归就是死循环

    字典推导式:

    格式:{key:value for 循环 if 条件判断}

    dict1 = {'name': 'zhangsan', 'age': 18}  # key-value互换位置
    
    dict2 = {dict1[key]:key for key in dict1}
    dict2 = {value: key for key, value in dict1.items()}
    print(dict2)

    无序集合推导式:

    格式:{计算公式 for 循环 if 条件判断}

    list1 = ["1","2","3","3"]
    
    set1 = {int(s) for s in list1 if int(s) >=2}  # {2,3}
  • 相关阅读:
    第六章 函数与宏定义实验报告
    第三次实验报告
    第五章 循环结构课后反思
    第二次实验报告
    第一次实验报告
    安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案
    2020软件工程最后一次作业
    2020软件工程第四次作业
    2020软件工程第三次作业
    2020软件工程第二次作业
  • 原文地址:https://www.cnblogs.com/huaibin/p/12096995.html
Copyright © 2011-2022 走看看