• 列表推导式


    # 列表推导式  
    
    # >>>用一行代码构建一个比较复杂有规律的列表
    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)

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

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

      写法:[] 和 ()

  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/GOD-L/p/13528287.html
Copyright © 2020-2023  润新知