zoukankan      html  css  js  c++  java
  • Python: 列表推导式

    在Python语言当中,一个很神奇的特性则是列表推到式了,它能够从一个列表里面筛选出你满意的部分,并重新组成一个列表,甚至可以对筛选的列表的内容进行修改

    比如说我们有一维列表:

    list=[1,3,5,6,2,34,7,3,5,8]

    我们想把其中大于10数字抽取出来,并重新通过append()方法生成一个大于数字10的列表,因此书写列表推倒式:

    [num for num in list if num>10]

    得到:

    [34]

    可见,34是在这个list当中最大的数字。同时重新组成一个新的列表,那么列表推倒式的通常写法则是这样的:

    [表达式或变量 for 变量 in list if语句]

    第一个是我们的表达式或者变量,表示使用append方法重新进入新列表的变量是什么,需要和for右边的变量有一定的关联,不然这个变量是没有申明过的话是会报错的。也可以将符合条件的变量做了一定修改之后再放到第一个表达式或者变量的地方,append进入新的列表。比如说我们想要list当中大于10的数字,同时让这个数字加一,我们该如何书写这个列表推倒式呢?:

    [num+1 for num in list if num>10]

    也就是将append到新列表当中的每一个数字num+1再写入列表推倒式当中,最后得到的结果也很显然是[35]了,您感兴趣的话可以自己试试看。或者我们有一个新的列表,列表里面充满了人的名字,我们需要找到长度大于三的人名,并同时将长度大于三的人名首字母大写,最后再重新得到一个新的列表,代码改如何书写呢?代码的书写方法如下所示,首先创建列表:

     list=["bob","mike","kelly","ao li gei"]
    

     书写列表推倒式:

    [name.capitalize() for name in list if len(name)>3]
    

     得到:

    ['Mike', 'Kelly', 'Ao li gei']
    

     

  • 相关阅读:
    java 泛型详解
    Vector源码解析
    栈的应用 函数调用
    java中ArrayList 遍历方式、默认容量、扩容机制
    java代码实现自定义栈 + 时间复杂度分析
    mySql分页Iimit优化
    Mybatis 动态SQL注解 in操作符的用法
    设计模式之 外观模式
    设计模式之 装饰器模式
    设计模式之 组合模式
  • 原文地址:https://www.cnblogs.com/geeksongs/p/12869573.html
Copyright © 2011-2022 走看看