概述
描述
列表解析在一个序列的值上应用一个任意的表达式,将其结果收集到一个新的列表中并返回。从语法上说,列表解析是由方括号封装起来的(为了提醒你它们构造了一个列表)
语法
[expression for target1 in iterable1 [if condition1]
target2 in iterable2 [if condition2] ...
targetN in iterableN [if conditionN] ]
参数
expression : 运算表达式
target:迭代元素
iterable:迭代器对象
condition:条件表达式
返回值
一个列表
示例
示例1
[x for x in range(5) if x%2==0]
输出的结果为
[0, 2, 4]
示例2
[(x ,
y)
for
x
in
range(5)
if
x
%
2
==
0
for
y
in
range(5)
if
y
%
2
==
1]
输出结果为:
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
与for的比较
任何一个列表解析都可以转换成for循环,这里测试两者的计算速度
for循环表达式
import time
start = time.time()
res = []
for
x
in
range(5):
if
x
%
2
==
0:
for
y
in range(5):
if
y
%
2
==
1:
res.append((x ,
y))
end = time.time()
print('Time of use {:.8f}s'.format(end-start))
输出的结果为
Time of use 0.00049996s
列表解析的表达式
import time
start = time.time()
res = [(x ,
y)
for
x
in
range(5)
if
x
%
2
==
0
for
y
in
range(5)
if
y
%
2
==
1]
end = time.time()
print('Time of use {:.8f}s'.format(end-start))
输出的结果为
Time of use 0.0000000000s
可以看到,列表解析的速度快很多。
最后
以上就是故意超短裙为你收集整理的python 列表解析的全部内容,希望文章能够帮你解决python 列表解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复