前言:列表解析的出现真的是神了,我们可以通过一种极其简洁的列表解析的式子,完成符合某种规律的列表的构建,或者替代函数式编程中 map(), filter() 这些函数的作用(函数式编程以后我会再做总结),实现对一个序列的筛选,依次计算等功能。
语法规则[expr for iter_val in iterable]
expr:生成对象(可以是表达式或者函数等)
iter_val:迭代对象
iterable:迭代范围
根据需要还可以加if等判断语句(下面将会详细举例解释)
1.依次对序列的值进行计算
例一:对序列中每个值进行平方运算
a = [1, 2, 3, 4, 5]
result = [x ** 2 for x in a] # x是元素,列表a是可迭代对象
print(result) # 运行结果 [1, 4, 9, 16, 25]
例二:用range表示
print([x + 1 for x in range(10)]) #运行结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
例三:expr可以是函数
def compute(x):
return 4*x*x-3
print([compute(x) for x in range(4)])#运行结果[-3, 1, 13, 33]
2.筛选序列
通过if实现筛选功能(在前一个基础上增加功能)
例一:0-9的偶数
print([x for x in range(