zoukankan      html  css  js  c++  java
  • 推导或内涵

    指以紧凑的方式对列表,元组,字典等序列或一序列的元素进行处理,处理的结果仍然放到一个列表,字典等序列之中的语法形式:

    典型列表推导形式:

    [<i 相关表达式> for i in aiterator]

    aiterator是指一个可遍历的对象,比如:列表,元组,也可以是range()函数。

    其语义是:用循环变量i去遍历aiterator,并且将i相关表达式的值放入一个列表中。

    每当对列表,元组,字典序列中的元素进行处理时,可以用推导来完成。可以降低程序的复杂性。使程序清晰易懂,缩短程序的长度。

    比如获得1-10的平方数存入列表之中,使用列表只需一行代码。如下:

    square=[i**i for i in range(1,11)]

    如果不用推导,用for语句代码:

    square=[]

    for i in range(1,11)

      square.append(i**i)

    字典实现推导语法如下:

    {key:value for key,value in aiterator}

    key=['name','age','xingbie']

    values=['lhl','18','nan']

    adct={k:v for k,v in zip(key,values)}  #字典推导中使用了并行迭代zip

    结果:{'name':'lhl','age':'18','xingbie':'nan'}

    列表推导和字典推导不仅可以对遍历的元素进行全部处理,还可以使用if语句实现由选择性的处理遍历序列中的元素,格式如下:

    [<i 相关表达式> for i in aiterator if <条件>]

    {k:v for k,v in aiterate if <条件>}

    如果获得1-10中所有书的平方,且平方值为偶数的一个列表,代码如下:

    square=[i**i for i in range(1,11) if i**i %2==1]

    对于字典推导式也可以使用if来进行部分元素的处理

    如果在推导式中的求值表达式或条件表达式中应用函数,则可以构造更加复杂的推导式来实现对序列中的数据进行批量的处理(这也常被称为声明式编程)

  • 相关阅读:
    Solr7使用Oracle数据源导入+中文分词
    自动签发https证书工具 cert manager
    Docker容器服务发现方案
    Registrator中文文档
    C#重试公用类
    sqlserver 2017 docker安装(启动代理)
    【转】如何将MySQL数据目录更改为CentOS 7上的新位置
    solr搜索引擎配置使用mongodb作为数据源
    [转]Docker容器可视化监控中心搭建
    AOP缓存实现
  • 原文地址:https://www.cnblogs.com/xuepython/p/6659474.html
Copyright © 2011-2022 走看看