我对python很新,并尝试生成一定数量的数字(例如3个数字),这意味着等于给定的值。 例如,让我们说我试图获得3个数字的不同列表,这些数字的均值等于10,这将使这些列表成为例如: (5,10,15)& (0,0,30)& (5,5,20)。
当我修复列表中的元素数量时,我知道我只能使用总和,但即便如此,我也无法找到如何以pythonic方式使用相同的总和来计算不同的列表。
编辑: 我想生成一个已定义数量的列表,而不是所有可能的组合,现在我想到它,它应该只是整数
答案 0 :(得分:0)
你走了。 这仅适用于没有重复的正整数
def make_lists(mean):
'without duplicates'
for i in range(0, mean+1):
for j in range(i, mean+1):
k = mean * 3 - i - j
assert (k+i+j) / 3.0 == float(mean), ((k+i+j) / 3.0) #just testing
yield (i,j, k)
if __name__ == '__main__':
print( list(make_lists(10)))