Python for循环输出到列表中

Python for循环输出到列表中,python,list,Python,List,该代码当前在新行中输出一个数字的系数,例如系数(18)输出18 9 6等。。。。当我打字时,我怎样才能做到这一点 def factors(n): for i in reversed(range(1, n+1)): if n % i ==0: print(i) 返回一个 print("factors for 18 are:", factors(18)) 在我的函数中没有打印(i)。所以基本上你的问题只是“如何创建一个数字列表而不是打印数字”?你知道return语句吗?顺

该代码当前在新行中输出一个数字的系数,例如系数(18)输出18 9 6等。。。。当我打字时,我怎样才能做到这一点

def factors(n):
for i in reversed(range(1, n+1)):
    if n % i ==0:
        print(i)
返回一个

print("factors for 18 are:", factors(18))

在我的函数中没有打印(i)。

所以基本上你的问题只是“如何创建一个数字列表而不是打印数字”?你知道
return
语句吗?顺便说一句,这个算法对于小n来说还可以,但是对于大n来说它会变得非常慢。改进它的一个简单方法是保存成对的因子i和n//i。所以如果n是一百万,你只需要测试i到1000。我可能做错了什么,但是当我运行这个程序时,我得到了18的因子[18]
factors of 18: [18,9,6,3,2,1]
def factors(n):
  ret = [] #Make an empty array to store number factors
  for i in reversed(range(1, n+1)):
    if n % i ==0:
      ret.append(i) #append factors
  return ret #return array of factors

print("Factors of 18", factors(18))