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

    列表推导式

    固定语法 [i for i in a if ***]

    示例:获取偶数

    a = [1,2,3,4]
    x = []
    for i in a:
        if i%2 == 0:
            x.append(i)
    a = x
    print(a)
    #[2,4]

    使用列表推导式:

    a = [1,2,3,4]
    a = [i for i in a if i%2 == 0]
    print(a)
    #[2,4]

    列表推导式可以调用函数:

    a = [1,2,3,4]
    b = [i*i for i in a]
    print(b)
    # [1, 4, 9, 16]
    
    如果调用函数:
    a = [1,2,3,4]
    def pingfang(x):
        return x*x
    b = [pingfang(i) for i in a]
    print(b)
    # [1, 4, 9, 16]

    生成器表达式

    语法:把列表推导式的[]换成()

    a = [1,2,3,4]
    a = ['%s个鸡蛋'%i for i in a]          #列表推导式
    print(a)
    # ['1个鸡蛋', '2个鸡蛋', '3个鸡蛋', '4个鸡蛋']

    转换如下:

    a = [1,2,3,4]
    a = ('老母鸡下%s个蛋'%i for i in a)       #生成器表达式      a是一个生成器
    g = a
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
    #老母鸡下1个蛋
    # 老母鸡下2个蛋
    # 老母鸡下3个蛋
    # 老母鸡下4个蛋

    字典推导式

    和列表推导式类似

    示例:把字典的key与value对换

    dic = {'a':1,'b':2}
    dic = {dic[k]:k for k in dic}
    print(dic)
    # {1: 'a', 2: 'b'}
  • 相关阅读:
    ASP.NET MVC 异常捕获
    Jquery 扩展方法
    Spring.NET笔记1
    ASP.NET MVC Ninject 实现依赖注入
    ASP.NET MVC Unity实现依赖注入
    windows service
    反射用法
    抽象工厂核心反射
    (C#)中的DataSet、string、DataTable等对象转换成Json
    .NET批量删除代码前的行号
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/9277829.html
Copyright © 2011-2022 走看看