我遇到了一个看似简单的问题,有人可以帮忙吗?
我有两个列表a和b。我可以将列表的元素称为a[i][j]where0<i<100和0<j<100。
我想找到所有的a[i][j] - b[k][l]、在哪里0<i<100, 0<j<100, 0<k<100以及0<l<100。然后对的所有排列进行求和i, j, k, l。
有人知道一个优雅简单的方法吗?
import itertools
sum(a[i][j] - b[k][l] for i, j, k, l in itertools.product(range(1, 100), repeat=4))
Run Code Online (Sandbox Code Playgroud)
itertools.product相当于嵌套for循环。它将遍历(i, j, k, l)从(1, 1, 1, 1)到 的每个元组(99, 99, 99, 99)。 这将跳过 0,这似乎是您所要求的。