我有一个dict,我想找出所有值和的组合,乘以一个递增因子。dict大小为2时的可能代码:
# data and n come from elsewhere
data = {'a': 1, 'b': 2}
n = 3
for x in xrange(0, n):
for y in xrange(0, n):
print("{0} * {1} + {2} * {3} = {4}".format(x, data['a'], y, data['b'], x * data['a'] + y * data['b']))
这给了
0 * 1 + 0 * 2 = 0
0 * 1 + 1 * 2 = 2
0 * 1 + 2 * 2 = 4
1 * 1 + 0 * 2 = 1
(...)
2 * 1 + 2 * 2 = 6
我的问题是dict中元素的数量会有所不同,因此嵌套的for
的数量也应该有所变化。有没有更好的方法来编码这样一个问题,以适应这样一个变量dict?你知道吗
可以将嵌套循环替换为笛卡尔积上的单个循环
这本身并不太有用,因为您仍然在那里硬编码2个变量。但它将我们引向下一点-
itertools.product
在迭代时生成元组相关问题 更多 >
编程相关推荐