列表推导式(ListComprehension),是Python中的一个很棒的语法糖,也称为列表解析式,它提供了一种简明扼要的方法来创建一个新列表。
前面我们提到的for循环嵌套使用,业务代码显得有点冗余,也相对耗性能,下面我们将使用列表推导式来代替它。
1、语法格式
out_list = [表达式 for 变量 in 列表 条件判断语句等]
2、案例-生成由0~10所有整数的平方组成的新列表
>>> out_list = [i**2 for i in range(10)]
>>> out_list
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3、案例-生成由0~10所有偶数的平方组成的新列表
>>> out_list = [i**2 for i in range(10) if i % 2 ==0]
>>> out_list
[0, 4, 16, 36, 64]
4、与传统嵌套使用消耗时间对比,使用time模块计时
# 传统 for 循环嵌套
# 完成 0-1000 每个数两两相乘
>>> import time
start_time = time.time()
out_list = []
for i in range(1000):
for j in range(1000):
out_list.append(i*j)
print(len(out_list))
end_time = time.time()
print(end_time-start_time)
# 新列表共一百万个元素
# 耗时约 0.179 秒
1000000
0.17854714393615723
# 传统列表推导式
# 完成 0-1000 每个数两两相乘
>>> import time
start_time = time.time()
out_list = [i*j for i in range(1000) for j in range(1000)]
print(len(out_list))
end_time = time.time()
print(end_time-start_time)
# 新列表共一百万个元素
# 耗时约 0.088 秒,效率提升不少
1000000
0.08780097961425781
以上就是开课吧广场小编为大家整理发布的“Python教程:扩展-列表推导式”一文,更多Python教程相关内容尽在开课吧Python教程频道。
免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。

相关文章
全部评论快来秀出你的观点
登录 后可发表观点…
发表

暂无评论,快来抢沙发!