目录
基本概念
推导式comprehensions(又称解析式),是Python的一种独有特性。推 导式是可以 从一个数据序列构建另一个新的数据序列的结构体 。
共有三种推导式:
• 列表推导式
• 字典推导式
• 集合推导式
列表推导式
简化列表的建立步骤,用最简洁的方式快速生成需求列表。代码的可读性强。
基本格式
[表达式 for 变量 in 列表]
举个例子
生成2n+1的以1开头的数列(以列表的形式)
b=[2*i+1 for i in range(10)]
print(b)
只需要一行语句便可以生成指定的列表,不必像以前那样先用循环然后使用append函数将i一个一个推进去。
平铺
使用列表推导式可以实现嵌套列表的平铺。
格式
[表达式 for 变量1 in 列表1 for 变量2 in 变量1]
通俗易懂的方法来说,就是使用列表推导式,将多个列表嵌套形成的新列表内的元素进行提取,去掉内部的嵌套结构,再以单层列表的形式进行输出,使用列表推导式可以大大简化原来的工作量 。
例子
c=[[4,3,1],[23,54,65],[12,54,7]]
c=[ele for i in c for ele in i]
print(c)
第一行写的是一个嵌套列表。
第二行我使用了列表推导式。具体的逻辑关系是:ele代表最内层的元素4,3....,而i代表的是一层列表[4,3,1]等,c代表的就是列表c。结合起来看就是首先写出最基本的元素名,然后写出for 一层列表 in 总列表 for 最内层元素 in 一层列表。
然后直接输出即可,输出结果如下图:
元素过滤
可以过滤掉不符合条件的元素。十分方便,不需要再像原来那样建立一个列表,然后通过循环一个元素一个元素进行循环判断然后删除。
格式
[表达式 for 变量 in 列表 if 条件]
例子
d=[32,432,5,43,654,7,876,23,9]
d=[i for i in d if i>400]
print(d)
运行结果如下