zoukankan      html  css  js  c++  java
  • 列表生成式和生成器表达式

    #列表生成式
    x = [i for i in range(10)]
    print(x)  #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    print([i*i for i in range(10)])  #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    
    #例一:30以内所有能被3整除的数
    num = [x for x in range(30) if x % 3 is 0]
    print(num)   #[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
    
    #例二:30以内所有能被3整除的数的平方
    num = [x*x for x in range(30) if x % 3 == 0]
    print(num)  #[0, 9, 36, 81, 144, 225, 324, 441, 576, 729]
    
    # 例三:找到嵌套列表中名字含有两个‘e’的所有名字
    names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
             ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
    
    print([name for lst in names for name in lst if name.count('e') >= 2])  # 注意遍历顺序,这是实现的关键
    #['Jefferson', 'Wesley', 'Steven', 'Jennifer']
    
    #字典的key和value对调
    dict1={"aa":11,"bb":22}
    
    print({dict1[k]: k for k in dict1})   #{11: 'aa', 22: 'bb'}
    
    #列表去重
    list1 = [11,22,33,44,33,55,22,00]
    list2= []
    
    for i in list1:
        if i not in list2:
            list2.append(i)
    print(list2)
    print("****************")
    
    print(list(set(list1)))  #[0, 33, 11, 44, 22, 55]
    
    a = [list2.append(x) for x in list1 if x not in list2]
    print(a)  #[None, None, None, None, None, None]
    print(list2)  #[11, 22, 33, 44, 55, 0]
    print("=======")
    
    # 集合推导式,自带去重功能
    # 例:计算列表中每个值的平方,自带去重功能
    
    squared = {x**2 for x in [1, -1, 2]}
    print(squared)  #{1, 4}
    
    
    # *******生成器表达式
    
    num = ("==%s"%x for x in range(10))
    print(num)  #<generator object <genexpr> at 0x002FF090>
    
    for i in num:
        print(i)
    
    
    
    g = (i*i for i in range(10))
    print(g.__next__())
  • 相关阅读:
    [CF786B] Legacy
    [CF833B] The Bakery
    [JSOI2008] 最小生成树计数
    [SDOI2010] 外星千足虫
    [POJ1830] 开关问题
    [Luogu1365] WJMZBMR打osu! / Easy
    [Noip2016] 换教室
    [NOI2002] 荒岛野人
    [计蒜之道复赛 2018] 贝壳找房计数比赛
    [SDOI2014] 旅行
  • 原文地址:https://www.cnblogs.com/chvv/p/10165915.html
Copyright © 2011-2022 走看看