本文采用循序渐进的写法,逐步递进.
传统for循环:
#获取1到1000000的偶数
#采用传统写法(俗称普通解析)
for i in range(1,10**6+1):
if(i%2==0):
print(i)
#程序运行结果:
#2
#4
#.
#.
#.
#1000000
总结(从直观上对代码进行评价):能完成要求,但是代码不够简洁.
改进后的代码,采用列表推导式:
#获取1到1000000的偶数
#采用列表推导式(俗称列表解析)
print([i for i in range
经常会看到类似于 [i for i in range(1,10)] 的表达式,这种表达式称为列表解析(List Comprehensions),类似的还有字典解析、集合解析等等。
列表解析式是将一个列表(实际上适用于任何可迭代对象)转换成另一个列表的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。
每个列表解析式都可以重写为 for 循环,但不是每个 for 循环都能重写为列表解析式,列表解析比 for 更精简,运行更快。
基本语法