python使用列表推导式的示例分析
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了python使用列表推导式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用列表推导式一个列表推导式包含以
千家信息网最后更新 2026年11月04日python使用列表推导式的示例分析
这篇文章主要介绍了python使用列表推导式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
使用列表推导式
一个列表推导式包含以下几个部分:
一个输入序列
一个表示输入序列成员的变量
一个可选的断言表达式
一个将输入序列中满足断言表达式的成员变换成输出列表成员的输出表达式
num = [1, 4, -5, 10, -7, 2, 3, -1]filtered_and_squared = []for number in num: if number > 0: filtered_and_squared.append(number ** 2)print filtered_and_squared# [1, 16, 100, 4, 9]
而如果使用filter、lambda和map函数,则能够将代码大大简化:
num = [1, 4, -5, 10, -7, 2, 3, -1]filtered_and_squared = map(lambda x: x ** 2, filter(lambda x: x > 0, num))print filtered_and_squared# [1, 16, 100, 4, 9]## 更简化的一种写法 num = [1, 4, -5, 10, -7, 2, 3, -1]filtered_and_squared = [ x**2 for x in num if x > 0]print filtered_and_squared# [1, 16, 100, 4, 9]
列表推导也可能会有一些负面效应,那就是整个列表必须一次性加载于内存之中,这对上面举的例子而言不是问题,甚至扩大若干倍之后也都不是问题。但是总会达到极限,内存总会被用完。
针对上面的问题,生成器(Generator)能够很好的解决。生成器表达式不会一次将整个列表加载到内存之中,而是生成一个生成器对象(Generator objector),所以一次只加载一个列表元素。
生成器表达式同列表推导式有着几乎相同的语法结构,区别在于生成器表达式是被圆括号包围,而不是方括号:
num = [1, 4, -5, 10, -7, 2, 3, -1]filtered_and_squared = ( x**2 for x in num if x > 0 )print filtered_and_squared#at 0x00583E18>for item in filtered_and_squared: print item# 1, 16, 100 4,9
这比列表推导效率稍微提高一些,让我们再一次改造一下代码:
num = [1, 4, -5, 10, -7, 2, 3, -1]def square_generator(optional_parameter): return (x ** 2 for x in num if x > optional_parameter)print square_generator(0)#at 0x004E6418># Option Ifor k in square_generator(0): print k# 1, 16, 100, 4, 9# Option IIg = list(square_generator(0))print g# [1, 16, 100, 4, 9]
除非特殊的原因,应该经常在代码中使用生成器表达式。但除非是面对非常大的列表,否则是不会看出明显区别的。 再来看一个通过两阶列表推导式遍历目录的例子:
import osdef tree(top): for path, names, fnames in os.walk(top): for fname in fnames: yield os.path.join(path, fname)for name in tree('C:\Users\XXX\Downloads\Test'): print name感谢你能够认真阅读完这篇文章,希望小编分享的"python使用列表推导式的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
表达式
生成
生成器
篇文章
代码
内存
序列
成员
问题
输入
示例
分析
之中
例子
总会
输出
明显
特殊
相同
一次性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司
喔噻互联网科技有限公司
互联网科技工作委员会
互联网科技巨头监管
科技互联网项目
奇酷互联网科技
广州凡科互联网科技
广西互联网科技公司
博兴的互联网电子科技公司
宁波青枫互联网科技有限公司
福州新华互联网科技学校 知乎
成都互联网科技公司100强
广州恒生互联网科技有限
成都互联网科技公司工作好不好
济南有互联网科技公司吗
互联网公司高科技产品
互联网科技手机排行榜
互联网金融运营模式中的金融科技
银川新华互联网科技学校是国营吗
六子台科技互联网展会
互联网科技股
广州百单互联网科技有限公司
重庆互联网络科技
互联网金融与金融科技
礼当家互联网科技
万易互联网科技有限公司
安徽鑫晟辉互联网科技
齐家互联网科技有限公司
互联网经济与金融科技
世界互联网科技成果奖