在 for 循环中生成空 [i]

generated empty [i] in for loop

我想为用户输入的值 n 创建一个空集合,并将 for 循环中的值分配给这个集合。但是为此,必须创建与用户输入一样多的 for 循环,这是不可能的。我该怎么做?

下面的代码工作正常,但我手动输入值 n=4。我再次手动创建 j 个索引。我想从用户那里得到这个 n 的值,并创建与这个值一样多的 j 个索引。

def result():
    for j in combinations(lastList, 4):
        if  j[0] + j[1] + j[2] + j[3] == sum:
            print (j[0] , j[1] , j[2] , j[3])

您可以使用 sum() 函数添加序列的所有元素,因此您不必显式编写索引。

def result(n, s):
    for j in combinations(lastList, n):
        if sum(j) == s:
            print(*j)

顺便说一句,不要使用 sum 作为变量名,因为它是 built-in 函数的名称。

不确定我是否明白了,但也许你想做类似

的事情
def result(num: int, sum_: int) -> None:
    for a, b, c, d in combinations(lastList, num):
        if  a + b + c + d == sum_:
            print (a, b, c, d)

这个答案是根据我对问题的解释可能是错误的。但是 !!有效!!

def result():
    expected_sum=int(input("User please enter required sum"))
    n=int(input("User please enter the number"))
    for j in combinations(lastList, n):
        if   sum(j)== expected_sum:
            print (j)

尝试根据您想要达到的总和和您拥有的数量进行以下输入能力。

def result(number, sum_goal):
     for list_item in combinations(lastList, number):
           if sum(list_item) == sum_goal:
                print('List of item is: ', list_item)

然后在主程序上执行以下操作:

if __name__ == "__main__":
   number = int(input("This is the number"))
   sum_goal = int(input("This is the sum"))
   result(number, sum_goal)