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

    推导式

    • 列表推导式
    • 生成器推导式
    • 字典推导式
    • 集合推导式
    列表推导式

    使用[]生成列表

    例一:

    lt = [x for x in range(10) if x%2==0]
    print(lt)   # [0, 2, 4, 6, 8]
    

    例二

    lt = [x if x%2==0 else -x for x in range(10)]
    print(lt)   # [0, -1, 2, -3, 4, -5, 6, -7, 8, -9]
    
    生成器推导式

    将俩表推导式的[]改成()即可得到生成器会生成一个迭代器对象

    lt = (x if x%2==0 else -x for x in range(10))
    print(type(lt))   # <class 'generator'>
    for i in lt:
        print(i,end=' ')   # 0 -1 2 -3 4 -5 6 -7 8 -9 
    
    字典推导式

    字典推导和列表推导的使用方法是类似的,只把中括号该改成大括号。

    例一:

    dic={chr(x):x for x in range(97,101)}
    print(dic)   # {'a': 97, 'b': 98, 'c': 99, 'd': 100}
    

    例二:

    dic={chr(x):x if x%2==0 else x*2 for x in range(97,101)}
    print(dic)   # {'a': 194, 'b': 98, 'c': 198, 'd': 100}
    

    例三:

    还可以快速颠倒key与value值

    dic = {'a': 97, 'b': 98, 'c': 99, 'd': 100}
    dic = {v:k for k,v in dic.items()}
    print(dic)   # {97: 'a', 98: 'b', 99: 'c', 100: 'd'}
    
    集合推导式

    它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

    例一:

    tup = {x for x in range(10) if x%2==0}
    print(tup)   # {0, 2, 4, 6, 8}
    

    例二

    tup = {x if x%2==0 else -x for x in range(10)}
    print(tup)   # {0, 2, 4, 6, 8, -9, -7, -5, -3, -1}
    
  • 相关阅读:
    IP保留地址
    HTML5读取本地文件
    angularjs中动态为audio绑定src
    canvas移动端常用技巧图片loading
    angularjs三级联动
    angular实现select的ng-options
    ng-bind-html在ng-repeat中问题的解决办法
    JS判断是否在微信浏览器打开
    angular实现select的ng-options
    创建 AngularJS 自定义过滤器,带自定义参数
  • 原文地址:https://www.cnblogs.com/Gredae/p/11348589.html
Copyright © 2011-2022 走看看