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)

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

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

      写法:[] 和 ()

  • 相关阅读:
    sqlldr、sqluldr2_w64案例
    查看oracle的sid和sevice_name
    杂记
    GAN学习
    Leetcode 第 217 场周赛
    牛客编程巅峰赛S2第4场
    SAR图像变化检测的一点想法
    Fire! UVA
    HDU
    HDU
  • 原文地址:https://www.cnblogs.com/GOD-L/p/13528287.html
Copyright © 2011-2022 走看看