zoukankan      html  css  js  c++  java
  • 各种推导式总结

    推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以将循环和条件判断结合,从而避免语法冗长的代码。会使用推导式有时可以说明你已经超越了python初学者的水平。也就是说使用推导式更像Python风格。

    一、列表推导式

    之前已经说过创建列表的多种方法,使用[ ] 、list() 、str.split() 等方法,除此之外,列表推导式也是生成具有一定规律的列表的方法。

    如创建一个从1到5的整数列表:

    number_list = []
    number_list.append(1)
    number_list.append(2)
    number_list.append(3)
    number_list.append(4)
    number_list.append(5)
    
    number_list = []
    for i in range(1,6):
        number_list.append(i)
    print(number_list)
    
    number_list = list(range(1,6))
    

    #. 更简单的一种方法即列表推导式

    print([x for x in range(5)])
    

    也可以加上条件表达式:

    print([x for x in range(5) if x >2])
    [3, 4]
    

    也可以加上多个条件表达式:

    print([x for x in range(5) if x >2 and x <4])
    [3]
    

    二、生成器推导式

    元组是没有推导式的。并不是将列表推导式中的方括号变成圆括号就可以定义元组推导式,就像下面的表达式一样:

    number_thing = (number for number in range(1,6))
    

    其实,圆括号之间的是生成器推导式,它返回的是一个生成器对象:

    注:一个生成器只能运行一次。列表、集合、字符串和字典都存储在内存中,但是生成器仅在运行中产生值,不会被存下来。所以不能重新使用或者备份一个生成器。

  • 相关阅读:
    彭明辉教授-《研究生完全求生手册》
    使用npm创建一个命令行工具
    #!/usr/bin/python与#!/usr/bin/env python的区别
    使用node+express搭建第一个node后端项目
    使用npm创建一个程序库包
    多项式多点求值
    2. 两数相加
    CSS实现子元素自动充满父元素的剩余空间
    侧边导航栏滚动条---CSS overflow实现
    Asp.NET Core简介
  • 原文地址:https://www.cnblogs.com/zhangray/p/9507304.html
Copyright © 2011-2022 走看看