Python - 将 for 循环变成单行代码

Python - Turning a for-loop into a one-liner

我正在尝试创建一个不带任何库的矩阵乘法标量函数。 它必须包括列表理解:

A = [[1,2],[3,4]] # 2by2 matrix

scalar = 2 #positive int

product = []

for row in A:
    
    temp = []
    
    for element in row:
        temp.append(scalar * element)
    
    product.append(temp)

print(product)

这是一个可能的解决方案:

A = [[1,2],[3,4]] # 2by2 matrix

scalar = 2 #positive int

product = [[i*scalar for i in sublist] for sublist in A]

print(product)

或者,您可以使用 lambda 和 map:

product = [*map(lambda x: [*map(lambda y: y * scalar, x)], A)]

Try it online!