Python 函数,该函数返回一个新列表,其中包含原始列表中可被函数参数中给定数字整除的值
我需要一个函数,它接受一个数组,迭代它的值,对于它的每一个可以被3整除但没有余数的值,将它添加到一个新数组中。 以下是我到目前为止的情况:Python 函数,该函数返回一个新列表,其中包含原始列表中可被函数参数中给定数字整除的值,python,list,for-loop,Python,List,For Loop,我需要一个函数,它接受一个数组,迭代它的值,对于它的每一个可以被3整除但没有余数的值,将它添加到一个新数组中。 以下是我到目前为止的情况: def exampleFour(array,num): temp = [] for i in array: if i % num == 0: temp.append(i) return temp print(exampleFour([3,5,9,6,7,15,24],3)) 但是,当我运行这个函数时
def exampleFour(array,num):
temp = []
for i in array:
if i % num == 0:
temp.append(i)
return temp
print(exampleFour([3,5,9,6,7,15,24],3))
但是,当我运行这个函数时,它只返回[3]。有人能帮我理解为什么吗?您的代码为我返回了正确的结果,但您可以很容易地做到这一点。 试试这个:
new_list = [i for i in array if i%num ==0]
您的代码在我的系统中返回
[3,9,6,15,24]
。。这几乎肯定是一个缩进错误;代码应该按照这里所示的方式工作。检查缩进(隐藏选项卡?),确保返回语句不在for
循环中。没有错误。我从这里复制了它,它成功地运行了,产生了预期的结果。不管显示了什么,您可以缩进return
语句,因此它落在if
中,并立即返回。是的,@taurus05。我是这么说的。刚刚给出了一个更好的解决方案。您甚至可以尝试这样做:new\u list=list(filter(lambda x:x%num==0,array))