
Python列表推导式
发布日期:2021-05-12 20:11:32
浏览次数:19
分类:精选文章
本文共 1071 字,大约阅读时间需要 3 分钟。
Python列表推导式是一种高效地创建列表的方式,简化了使用for循环的过程。了解range()函数是关键,因为它是列表推导式的基础。接下来通过实例和技巧,理解如何构建和优化列表推导式,包括条件和嵌套,并比较其优于传统循环的优势。
range()函数简介
range(start, stop[, step])函数用于生成整数序列:
- start:起始值,默认0。
- stop:结束值,不包括该值。
- step:步长,默认1。
例如,range(5)
等价于range(0,5)
,生成列表[0, 1, 2, 3, 4]。
列表推导式基础
列表推导式通过方括号包含表达式,生成列表:
list_b = [b for b in range(5)]
结果为[0, 1, 2, 3, 4]。这种形式比传统的循环创建列表更为简洁。
示例应用
复杂的列表推导式可以结合多种元素操作:
list_c = [7 * c for c in "python"] # 结果:['ppppppp', 'yyyyyyy', 'ttttttt', 'hhhhhhh', 'ooooooo', 'nnnnnnn']
嵌套结构:
list_d = [d for d in range(6) if d % 2 != 0] # 生成奇数列表[1, 3, 5]
多层循环生成笛卡尔积:
list_e = [(e, f * f) for e in range(3) for f in range(5, 15, 5)] # 结果:[(0, 25), (0, 100), (1, 25), ...]
合理使用列表推导式时,代码一行即可完成,多层循环应谨慎使用,确保可读性。
代码可读性
列表推导式降低了代码行数,增强了可读性。熟悉该语法后,能够直观理解列表生成逻辑,而传统循环可能需要多行代码,显得冗杂。
字典和集合推导式
Python2.7引入字典和集合推导式:
-
字典推导式:
dict_a = {key: value for key in 'python' for value in range(2)}
-
集合推导式:
set_a = {value for value in '有人云淡风轻,有人负重前行'}
集合自动去重,按一定顺序排列,使得处理多余元素更方便。
总结
列表推导式通过简洁的代码生成列表,是处理逻辑迭代的一种高效方式。结合range()函数和多元条件,可以创建复杂的列表结构。每当需要生成简单列表时,列表推导式都是首选工具。但在复杂逻辑或多行情况下,谨慎考虑代码可读性。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月01日 22时23分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python struct 官方文档
2019-03-07
Android DEX加固方案与原理
2019-03-07
Android Retrofit2.0 上传单张图片和多张图片
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
AndroidStudio跳到错误位置
2019-03-07
木马开发的基本理论基础(五)
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
我用wxPython搭建GUI量化系统之Sizer布局管理与页面切换
2019-03-07
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2019-03-07
我用wxPython搭建GUI量化系统之财务选股工具添加日历和排序
2019-03-07
selenium+python之切换窗口
2019-03-07