For循环将打印倍数但不追加到列表

时间:2019-04-16 16:12:29

标签: python list for-loop

我正在尝试创建两个整数倍的两个列表。 for循环将打印倍数,但不会将这些倍数附加到其各自的列表中。如何将倍数添加到列表中?

integer1 = int(input('input integer1: '))
integer2 = int(input('input integer2: '))

multiple_list1 = []
multiple_list2 = []

def multiples(n, list):
    list = []
    for i in range(n*100):
        if i % n == 0:
            #print(i)
            list.append(i)

print(multiples(integer1, multiple_list1))
print(multiples(integer2, multiple_list2))

1 个答案:

答案 0 :(得分:1)

请勿在函数内重新分配list。现在,该变量不再引用呼叫者的列表。

如果要先清空列表,请分配给一个切片。

def multiples(n, list):
    list[:] = []
    for i in range(n*100):
        if i % n == 0:
            #print(i)
            list.append(i)

使用list作为变量名也不是一个好主意,它掩盖了内置的类名。

顺便说一句,获取n的所有倍数的更好方法是:

list[:] = range(0, n*100, n)