今天看书发现一个很好玩的函数:列表生成式
格式如下:
[function(x)] for x in itr_x]
列表生成式的收尾是列表的方括号。它用到一个可以迭代的对象(iter_x),将(iter_x)的每一个值传入func(x)中,用返回值创建一个新列表。
eg:
data_list = [1,2,3,4,5]
list = [x+2 for x in data_list]
print(list)
结果为;
[x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表生成式的最后也可以加其他条件,例如
data_list = [1,2,3,4,5]
list = [x+2 for x in data_list if data_list[2]==3]
print(list)
输出结果为
[3, 4, 5, 6, 7]
很有意思。
从上面可以看出,列表生成式的代码比较简短,性能更好,也更加节省内存。