我创建了一个嵌套循环。
import math
results = []
for i in range(3,5):
for j in range(1,5):
something = (i, ((math.factorial(j-1 + i-1)/ (math.factorial(i-1) * math.factorial(j-1)))))
print something,
输出如下:(3,1)(3,3)(3,6)(3,10)(4,1)(4,4)(4,10)(4,20)我怎么能把(3,x)和(4,y)这两组分开,然后用文字把它们打印在两行上呢?所以结果看起来像这样:
3:(1、3、6、10)
4:(1、4、10、20)
如果您想存储每个i
的结果,那么您可以使用collections.defaultdict
,示例-
import math
from collections import defaultdict
results = defaultdict(list)
for i in range(3,5):
for j in range(1,5):
results[i].append((math.factorial(j-1 + i-1)/ (math.factorial(i-1) * math.factorial(j-1))))
print '{} : {}'.format(i,results[i])
,
3 : [1.0, 3.0, 6.0, 10.0]
4 : [1.0, 4.0, 10.0, 20.0]
您可以使用dict.setdefault()
:
import math
results = {}
for i in range(3,5):
for j in range(1,5):
something = (i, ((math.factorial(j-1 + i-1)/ (math.factorial(i-1) * math.factorial(j-1)))))
results.setdefault(something[0], []).append(something[1]) #Create key if not available with default [] value if available get the value and append to the list
print results
{3: [1, 3, 6, 10], 4: [1, 4, 10, 20]}