Python的列表推导式又称(列表解析式子)提供了一种简明扼要方便的方法来创建列表
一般结构是,一个中括号中,包含一个表达式,一个for 语句,然后是 0 个或多个 for 或者 if 语句
结构拆解:
- 最简单的列表推导式
[x for x in range(1,8)] # 1-7
- 1
- 加判断条件的列表推导式
[x for x in range(1,8) if x >5] # [6,7]
- 1
- 加lambda(匿名函数)的列表推导式
functions=[ lambda x,i=i: x*i for i in range(1,9)]
for function in functions:
print(function(3)) # 返回的是函数,传惨,相当于for i in range(1,9) x =x*i (3*1,3*2....3*8)
# 输出
3
6
9
12
15
18
21
24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 多重判断列表推导式
res = [x for x in range(10) if(x>1) if(x<5)]
print(res)
# [2, 3, 4]
- 1
- 2
- 3
- 多重循环列表推导式
[x-y for x in range(10) if(x>8) for y in range(5) if (x-y) > 0]
# [9, 8, 7, 6, 5]
# 等价于:
list1 = []
for x in range(10):
if x > 8:
for y in range(5):
if (x-y) > 0:
list1.append(x-y)
print(list1)
# [9, 8, 7, 6, 5]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12