列表表达式

定义

[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]

等价于

x = []
for 迭代变量 in 可迭代对象 :
    if 条件表达式:
        x.append(表达式)
#x 就是生成的列表

使用

def test():
    a = range(1, 10)  # 生成一个从1到9的列表
    b = [x * x for x in a]
    print(b)   # [1, 4, 9, 16, 25, 36, 49, 64, 81]
    c = [x * x for x in a if x%2==0]
    print(c)   # [4, 16, 36, 64]

def test1():
    src_a = [30, 12, 66, 34, 39, 78, 36, 57, 121]
    src_b = [3, 5, 7, 11]
    # 只要y能整除x,就将它们配对在一起
    result = [(x, y) for x in src_b for y in src_a if y % x == 0]
    print(result)  # [(3, 30), (3, 12), (3, 66), (3, 39), (3, 78), (3, 36), (3, 57), (5, 30), (11, 66), (11, 121)]

Q.E.D.


Nothing really matters to me!