我遇到了一个看似简单的问题,有人可以帮忙吗?
我有两个列表 a
和 b
.我可以将列表的元素称为 a[i][j]
其中 0<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))
itertools.product
相当于一个嵌套的 for
循环。它将遍历从 (1, 1, 1, 1)
到 (99, 99, 99, 99)
。 这将跳过零,这似乎是您要求的。
关于 python : summation over all permutations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609028/