【问题标题】:Using list[ ] function使用 list[ ] 函数
【发布时间】:2020-04-06 15:54:16
【问题描述】:

我怎样才能得到一个列表作为输出,而不是在另一个下面打印一个数字 对于我的代码:

def factors(n):


    for i in range(1, n):
        if n % i == 0:

            print(i)


prime_factors(28)

我怎样才能得到一个列表的输出

我试过了:

def factors(n):
    lst = []
    for i in range(1, n):
        if n % i == 0:

            lst.append(i)
        return(lst)


factors(28)

但这会报错

【问题讨论】:

  • 您可能希望在循环外部定义列表,然后返回(不打印)它。
  • 请逐行遍历你的代码
  • 我按照你说的编辑了它,但它仍然给我错误

标签: python python-3.x list loops


【解决方案1】:

“lst”不存在于 if 范围之外。 您应该在 if 语句之前声明“lst”,并且可能在 for 之前声明。更想在 for 的范围之外打印列表

def factors(n):

    lst = []
    for i in range(1, n):
        if n % i == 0:
            lst.append(i)
    print(lst)


factors(28)

【讨论】:

    【解决方案2】:

    您的代码中有两个小问题。您将lst 设置为循环的每次迭代的空列表,并且该函数可能应该返回该列表。这有效:

    def factors(n):
        lst = []
        for i in range(1, n):
            if n % i == 0:
                lst.append(i)
        return lst
    
    print(factors(28))
    

    【讨论】:

      【解决方案3】:

      这就是列表的简化方法...

      def factors(n):
          list1=[i for i in range(1,n) if n%i==0]
          print(list1)
      
      factors(28)
      

      希望对你有帮助..

      【讨论】:

        猜你喜欢
        • 2011-01-15
        • 1970-01-01
        • 2019-12-21
        • 1970-01-01
        • 2011-06-30
        • 2011-04-18
        • 2021-07-21
        • 2023-03-16
        • 1970-01-01
        相关资源
        最近更新 更多