2022年 11月 7日

python列表推导式

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