推导式comprehensions(又称解析式),是Python的一种独有特性,可以从一个数据序列构建另一个新的数据序列。具有使用方便,让代码看起来很高级的功能。

分析

考虑以下需求:

a=[1,2,3,'a','b','c']

要取出列表中的数字,然后平方,得到一个新的列表。

一般可以这样解决:

a=[1,2,3,'a','b','c']
b=[]
for i in a:# isinstance(a,type) 判断a的类型是不是typeif(isinstance(i,int)):b.append(i**2)
print(b)

如果使用列表推导式,会简洁很多:

a=[1,2,3,'a','b','c']
b=[i**2 for i in a if isinstance(i,int)]
print(b)

列表表达式由四个部分组成:

  • 输入的列表
  • 列表循环变量
  • 可选的约束条件
  • 输出表达式

例子

  • 计算x的平方

    #0-9
    x = list(range(10))
    print(x)
    y = [i**2 for i in x]
    print(y)
    

  • 实现嵌套列表的平铺

    vec = [[1,2,3],[4,5,6],[7,8,9]]
    print(vec)
    y = [j for i in vec for j in i]
    print(y)
    

  • 过滤不符合条件的元素

    a = [1,2,3,0,-1,-3,-100,100]
    print(a)
    b = [i for i in a if i > 0]
    print(b)
    

  • 多序列任意组合

    a = [1,2,3,4,5,6,7]
    b = [1,2,3,4,7,7,7]
    c = [(x,y) for x in a for y in b if(x==y)]
    d = [(a[x],b[y]) for x in range(7) for y in range(7) if a[x]==b[y]and(x==y)]
    print(c)
    print(d)
    

  • 矩阵按列读取

    a = [[1,2,3],[4,5,6],[7,8,9]]
    b = [[row[i] for row in a] for i in range(3)]
    print(b)
    

  • 生成100以内的素数

    import numpy as np
    a = [x for x in range(2,101) if 0 not in [x%i for i in range(2,int(np.sqrt(x)))] ]
    print(a)
    

python 列表推导式详解相关推荐

  1. 列表推导式详解:[i for i in L]

    python的一般for循环:for i in x:#x是列表对象 而列表推导式是:[i for i in x] 其意为:用for i in x的所有遍历结果i来组成一个新的列表 1.列表推导式详解: ...

  2. 列表推导式 python原理_Python进阶-列表推导式详解总结

    列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做 lst = ...

  3. Python基础教程:列表推导式详解

    我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...

  4. python各种推导式详解

    推导式的套路 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable = [out_exp_res for out_exp in input_list if out_ex ...

  5. 列表推导式 python_Python进阶 列表推导式详解总结

    列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做lst = [ ...

  6. Python 列表推导式 - Python零基础入门教程

    目录 一.Python 列表推导式简介 二.Python 列表推导式语法 三.Python 列表推导式练习 1.Python 列表推导式案例一 2.Python 列表推导式案例二 3.Python 列 ...

  7. python 列表推导式csv_Python 列表推导式

    在本教程中,我们将学习使用 Python 列表推导. Python 列表推导式 列表推导式是一种基于现有列表创建列表的语法结构. 列表推导式为创建列表提供了一种简洁的方法. 常见的要求是创建新列表,其 ...

  8. 【技能树共建】Python 列表推导式

    Python 列表推导式是什么 列表推导式是 Python 语言特有的一种语法结构,也可以看成是 Python 中一种独特的数据处理方式, 它在 Python 中用于 转换 和 过滤 数据. 其语法格 ...

  9. python列表推导式是什么

    列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表. 它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句.那个表达式可以是任意的, ...

最新文章

  1. sqlserver 日常检查脚本
  2. php做一个微信退款,PHP实现微信申请退款流程实例代码
  3. django orm关联查询_Django ORM 聚合查询和分组查询实现详解
  4. IntelliJ IDEA 文件夹重命名--解决重命名后js文件引用找不到路径报404错误
  5. 布尔型Boolean+undefined+null(JS)
  6. hdu 6096 String(AC自动机巧妙建图)
  7. (11)Redis------分布式锁的实现方式之一(基于Springboot项目搭建)
  8. 学习笔记第十四篇之知乎社交网络分析
  9. python开新窗口的方法_python tkinter点击按钮打开新窗口
  10. linux下python网络编程框架-twisted安装手记,linux下Python网络编程框架-Twisted安装
  11. 上海交通大学考研网络安全专业823复习策略
  12. 实现一个内存池管理的类
  13. 这所211怒将自己学生告成老赖:90后校友承诺捐母校1100万未兑现
  14. 【TensorFlow基础】
  15. 二叉树遍历——先序遍历
  16. idea提交本地项目到oschina
  17. 计算机组成原理研究生试题三,计算机组成原理研究生入学试题.doc
  18. 每日新闻丨Facebook再曝数据泄露事故;国内首台晶圆自动翻转倒片机成功研发...
  19. dnf服务器炸团门票怎么找回,DNF:还在为魔界裂缝门票发愁吗?这些地方可以轻松获取门票...
  20. 从cas-overlay-template安装apereo cas 6.1.x并连接CAS客户端

热门文章

  1. 直接插入排序:监视哨的作用
  2. 上班时间写开源软件,结果被单位告被警察抓,这算什么?
  3. html css图片平铺整个页面,css 样式 图片平铺整个界面
  4. php如何平铺背景图片,css如何让背景图片平铺?css背景图片平铺四种方式介绍
  5. 大数据主导的七大领域,看看你是否身处其中!
  6. 微信开发者模式php,微信开发之开发者模式
  7. 网络安全应急响应----7、数据泄漏应急响应
  8. java毕业设计校园内推系统mybatis+源码+调试部署+系统+数据库+lw
  9. 太极拳“引进落空”的学理研究
  10. signature=b82cbfee4ef06278e49b74f8c0c0e8a0,FgfdhG0G4b58BB0Y