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__())
  • 相关阅读:
    solr 最佳实践
    DNS 域名解析过程
    mac 下 virtualbox 配置全网通
    搜索引擎使用技巧
    三叉搜索树
    双数组trie树的基本构造及简单优化
    基于回归-马尔科夫模型的客运量预测
    solr 常用命令
    PHP yield 分析,以及协程的实现,超详细版(上)
    C语言,简单计算器【上】
  • 原文地址:https://www.cnblogs.com/chvv/p/10165915.html
Copyright © 2011-2022 走看看