基本格式:

variable = [out_exp_res for out_exp in input_list if out_exp == 2]

out_exp_res:  列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list:  迭代input_list将out_exp传入out_exp_res表达式中。
if out_exp == 2:  根据条件过滤哪些值可以。

来自 https://www.cnblogs.com/tkqasn/p/5977653.html

例子:

1.png

核心语句:templist = [i for i in range(30) if i % 3 is 0],其中if语句作为条件筛选语句,起到的是过滤元素的作用。

要理解这条语句首先要知道python中的for语句、range()方法、if语句还有is的用法

for语句的例子

2.png

for语句是将arry中的每一个元素迭代输出。

range()的语法:

Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。

函数语法

range(stop)
range(start, stop[, step])

参数说明:

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

来自 https://www.runoob.com/python3/python3-func-range.html

is用法:

参考另一篇博客https://www.cnblogs.com/wangkun122/p/9082088.html

通过本篇文章我希望能和大家介绍列表推导式的基本用法,列表推导式还有很多的高级用法,可以嵌套使用,我也会在后续的高级用法的文章中利用例子来和大家分享他们的用法。