列表推导式


结构:==[变量 for 变量 in 可迭代对象]==

1.简单模式

只包含循环,不包含判断筛选

#常规
list_1 = []
for x in range(1,10):
    list_1.append(x)
print(list_1)

#推导式
list_2 = [x for x in range(1,10)]
print(list_2)

2.一般模式

包含判断和筛选

#常规
list_3=[]
for x in range(1,10):
    if x % 2 ==0:
        list_3.append(x*x)
print(list_3)

#推导式
list_4 = [x*x for x in range(1,10) if x % 2 ==0]
print(list_4)

3.变态模式

包含循环嵌套,判断,筛选

#常规
list_5 = [[1,2,3],[4,5,6],[7,8,9]]
list_6 = []
for x in list_5:
    for y in x:
        if y % 2 ==0:
            list_6.append(y*y)
print(list_6)

#推导式
list_7 = [y*y for x in list_5 for y in x if y % 2 == 0 ]
print(list_7)