用理解替换 Python 嵌套的 For 循环

zkl*_*lim 1 python for-loop list-comprehension

我正在寻找一种使用列表推导式来实现以下目标的方法:

a = [1,2,3,4]
b = [5,6,7,8]
vals = []

for i in a:
  for j in b:
    vals.append(i*j)

print(vals)
Run Code Online (Sandbox Code Playgroud)

我相信有一种方法可以通过列表理解来做到这一点,但我不知道如何进行。

Sco*_*ton 5

纯列表理解:

[i*j for i in a for j in b]
Run Code Online (Sandbox Code Playgroud)

输出:

[5, 6, 7, 8, 10, 12, 14, 16, 15, 18, 21, 24, 20, 24, 28, 32]
Run Code Online (Sandbox Code Playgroud)