我有两个列表:a = [1, 2, 3] 和 b = [4, 5, 6]。
我在 python 中使用了两个循环,从 a 的每个元素中减去 b 的每个元素。
import numpy as np
a = [1, 2, 3]
b = [4, 5, 6]
p = -1
result = np.zeros(len(a)*len(a))
for i in range(0,len(a)):
for j in range(0,len(a)):
p = p + 1
result[p] = a[i] - b[j]
我的结果是正确的:result = [-3., -4., -5., -2., -3., -4., -1., -2., -3.] 。
但是,我想知道是否有更优雅('pythonic')的方式来做到这一点。
请您参考如下方法:
不需要使用索引。您可以迭代这些值。
a = [1, 2, 3]
b = [4, 5, 6]
result = []
for x in a:
for y in b:
result.append(x - y)
Pythonic 方式是列表理解。
a = [1, 2, 3]
b = [4, 5, 6]
result = [x - y for x in a for y in b]
请记住,您应该为 a、b、x 和 y 使用有意义的名称真正的代码。
