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

    # 列表推导式  
    
    # >>>用一行代码构建一个比较复杂有规律的列表
    print([i for i in range(100)])
    
    # 列表推导式分为两类
    
    # 一.循环模式:[变量(加工后的变量) for 变量 in iterable(可迭代对象)]
    
    # 习题
    # 1.将10以内所有的整数的平方写入列表
    print([i**2 for i in range(1, 11)])
    
    # 2.100以内所有的偶数写入列表
    print([i for i in range(0, 101, 2)])
    
    # 3.从python1期到python100期写入列表lst
    lst = [f'python{i}期' for i in range(1, 101)]
    print(lst)
    
    
    # 二.筛选模式:[变量(加工后的变量) for 变量 in iterable(可迭代对象) if 条件]
    
    # 习题
    # 1.30以内能被3整除的数
    l1 = [i for i in range(1, 31) if i % 3 == 0]
    print(l1)
    
    # 2.过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
    l2 = ['barry', 'ab', 'alex', 'wusir', 'xo']
    
    print( [i.upper() for i in l2 if len(i) >= 3])
    
    # 3.找到嵌套列表中名字含有两个'e'的所有名字,变成大写并保存到列表中
    names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], 
                ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
    """
    正常思路
    lst = []
    for ls in names:
        for name in ls:
            if name.count('e') == 2:
                lst.append(name)
    print(lst)
    """
    lst = [name.upper() for ls in names for name in ls if name.count('e') == 2]
    print(lst)

    列表推导式只能构建比较复杂并且有规律的列表。超过三层循环才能构建成功的,就不建议使用列表推导式

    列表推导式与生成器表达式的区别:

      写法:[] 和 ()

  • 相关阅读:
    JS 百度地图路书---动态路线
    jQuery---创建和添加节点
    CSS基础
    第一篇:前端知识之HTML内容
    JS高级---为内置对象添加原型方法
    JS DOM属性+JS事件
    Vue-router
    vue使用kkfileview文件预览功能
    JS高级---案例:验证密码的强度
    promise是怎么来的?
  • 原文地址:https://www.cnblogs.com/GOD-L/p/13528287.html
Copyright © 2011-2022 走看看