函数的常用操作是将函数应用给一个列表的所有项,并使结果创建一个新的列表, 例如:

nums = [1, 2, 3, 4, 5]
squares = []
for n in nums:
    squares.apend(n*n)

这种操作很常见,因此出现了叫做列表推导运算符,例如

nums = [1, 2, 3, 4, 5]
squares = [n*n for n in nums]

列表推导的一般语法为:

[expression for item1 in iterable1 if condition1
            for item2 in iterable2 if condition2
            ...
            for itemN in iterableN if conditionN]

这种语法大致等价于以下代码:

s = []
for item1 in iterable1:
    if condition1:
        for item2 in iterable2:
            if condition2:
                ...
                for itemN in iterableN:
                    if conditionN:
                        s.append(expression)

如果列表包含用于构造元组列表,则元组值必须放在圆括号中。例如:

[(x, y) for x in a
        for y in b]

这是合法的,而

[x, y   for x in a
        for y in b]

这是不合法的

更多推荐

python基础-列表包含