【发布时间】:2021-09-22 22:36:54
【问题描述】:
我现在开始编程。我得到一个练习来生成 10 个数字和一组数字的组合,然后求和,这些数字的总和需要小于 800 且大于 700,然后打印结果和组合(打印所有组合)。
例如,如果一组数字是 10,20,30,40,50,60,70,80,90,100,我需要使用我设置的数字和该组合的总和来生成一组 10 个数字小于 560 大于 500。
10+20+30+40+50+60+70+80+90+100 = 550
10+20+30+40+50+40+100+80+90+90 = 550
..
我在 Python 中开始编写代码,但我有点卡住了,我如何对这些组合求和。
import itertools
myList = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
for i in range(len(myList)):
for combinations in itertools.combinations(myList, i):
print(combinations)
sum(e for e in combinations if e >= 550)
【问题讨论】:
-
你有一个重复的 40 个,其中一个移到了 50 个后面,所以我猜你真的想要产品而不是组合?
-
在此社区和其他社区(例如 unix.stackexchange.com (SE))中的适当礼仪和负责任的行为,在您交叉发布的地方,鼓励您根据他们的优点接受完美的答案。它向这些社区中的其他人发出信号,表明您的问题可以得到很好的答案并且可以重复使用。请在 SO 和 SE 上用左侧的绿色标记进行检查,为您指明最佳答案。
标签: python sum combinations itertools