一、列表推导式

Python官网列表推导式部分

列表推导式提供了一种创建list的简便方法。应用程序创建列表时,列表中的元素来源于其他序列、可迭代对象或创建的一个满足一定条件的序列。
基本格式:
​[表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件]

例子1:写一个列表生成式,产生一个公差为11的等差数列

print([x*11 for x in range(10)])

例子2:创建一个平方数组成的列表

>>> squares = [x**2 for x in range(10)]
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

等价于以下map方法:参考(菜鸟教程之Python map()函数)

squares = map(lambda x: x**2, range(10))

例子3: 有一个嵌套列表,a=[[1,2],[3,4],[5,6]],要提取列表里的每一个元素

>>> b=[j for i in a for j in i]
>>> b
[1, 2, 3, 4, 5, 6]

例子4:使用列表推导式生成100以内的所有素数

[p for p in range(2,100) if 0 not in [p%d for d in range(2,p)]]

二、字典推导式

字典推导式和列表推导式的使用方法是类似的,只不过中括号改成了大括号。

基本格式

{ key_expr: value_expr for value in collection if condition }

例子1:

>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}

三、集合推导式

集合推导式和列表推导式的使用方法也是类似的,只不过中括号改成了大括号。

基本格式:

{ expr for value in collection if condition }

例子1:

>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
set(['r', 'd'])

四、嵌套列表推导式

列表表达式中的初始表达式可以是任意表达式,包括另一个列表表达式。(一个表达式里面嵌套另一个或多个表达式)

例子1:矩阵的转置

>>> matrix = [
...     [1, 2, 3, 4],
...     [5, 6, 7, 8],
...     [9, 10, 11, 12],
... ]
>>> transposed = []
>>> for i in range(4):
...     transposed.append([row[i] for row in matrix])
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

列表推导式:

>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

等价于以下Zip(内置函数)方法:

>>> zip(*matrix)
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

Python各种推导式(列表推导式,字典推导式,集合推导式,嵌套列表推导式)相关推荐

  1. Python 空元组、空列表、空字典、空集合

    定义 元组(tuple): 不可变序列,一旦建立不能修改元组中的元素. 列表[list]: 可变序列,可以添加和删除其中的元素. 集合{set}: 集合是一个可变无序集合,没有重复元素.支持数学中的集 ...

  2. python 列表解析式_python列表解析式,字典解析式,集合解析式和生成器

    一.列表解析式(列表推倒式): 功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表. 1 lst = [1, 3, 5, 8, 10] 2 ll = [x+x for x in ls ...

  3. 对比 | Python中超级好用的“列表解析式”、“字典解析式”、“集合解析式”

    1. 列表.字典.集合概念说明 在讲述这三个概念之前,首先我们需要对列表.字典.集合三个概念,做一个简单的说明. 2. 列表解析式 列表推导式,在日常编程中发挥着很重要的作用(尤其是利用python做 ...

  4. Python-各种结构解析以及生成器(列表解析,字典解析,集合解析,元组构成的生成器)

    1.列表解析: 举例:生成一个列表,元素0-9,对每一个元素自增1后求平方返回新列表. test = [ (i + 1) ** 2 for i in range(10)] print(test) # ...

  5. 集合中元素的数据类型可以不同,但集合中不能嵌套列表、元组、集合、字典

    1.问题根源: text = {"a":{"aa":1,"b":2},"b":2,"c":3,&qu ...

  6. Python递归实现①把嵌套列表压平为一层列表②返回嵌套列表中某元素出现的个数③返回第n个斐波那契数

    一.把嵌套列表压平为一层列表 def flatten(nested_list):'''这是把嵌套列表压平为简单列表并返回的函数:参数 nested_list:一个嵌套列表'''#先定义一个空列表,用于 ...

  7. Word控件Spire.Doc 【列表】教程:在 Word 文档中插入列表

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  8. html语言中项目列表的嵌套,做HTML嵌套列表的正确方法?

    选项2是正确的:嵌套的 是 它属于我.如果你验证,选项1在html 5中出现错误-信用:用户3272456 正确: 作为.的孩子 生成HTML嵌套列表的正确方法是使用嵌套的 作为一个孩子 它属于它的. ...

  9. Python的列表推导式和嵌套列表推导式

    推导式 推导式的基本形式: [expr for val in Collection if condition] 简单翻译一下: [操作 for 值 in 容器 if 条件] strings = ['b ...

最新文章

  1. WCF - Session 剖析
  2. atom 主板 文件服务器,小巧而精悍!Atom工控主板平台拆解测试
  3. Linux终端字符颜色设置
  4. SpringCloud(第一部分)
  5. 2个菜鸟Java常量和枚举陷阱
  6. 这些年,NLP常见的预训练模型剖析
  7. Java注解的Retention和RetentionPolicy
  8. 崛企问卷调查小程序模块V1.3.2
  9. C++之判断当前是debug还是realease
  10. 开源Dimdim是网络会议的桥接方案
  11. Vim下的插件管理工具pathogen简介
  12. 面试:Synchronized锁升级(理解)
  13. 如何用文献管理软件Endnote X9插入参考文献
  14. Typora结合Git打造完美的个人云笔记本
  15. 用友U9【SV】服务
  16. 使用Python采集京东商品详情数据,并上传到拼多多商城中
  17. 解决Kubernetes的flannel pod出现Init:RunContainerError问题
  18. c语言的内存布局规律
  19. POI(excel)中WorkBook和Sheet应用实践总结
  20. 一文总结深度学习的12张思维导图

热门文章

  1. 深度linux_深度:图文带你走进Linux系统结构
  2. python面向对象难学_python-面向对象进阶
  3. python不带颜色的图形_python – 为什么seaborn pairplot中的kde子图中没有显示颜色?...
  4. Protobuf介绍及简单使用(下)之文件读写
  5. 范数与L1损失(MAE)、L2损失(MSE)的关系
  6. java实现语音聊天_java 语音聊天核心代码
  7. HTML5 APP项目展示响应式网页模板
  8. HomeWindowsYesPlayMusic – 一个好看的第三方xx云音乐客户端 YesPlayMusic
  9. 蓝蛇端口扫描器 v2.8.4.724
  10. 外星人装深度linux,外星人alienware 18笔记本怎么安装win10系统