【问题标题】:I can't add an int to a list我无法将 int 添加到列表中
【发布时间】:2014-04-13 04:52:42
【问题描述】:
list == []

def MultiplesNumber(a):
    for i in range(1, a+1):
             if a % i == 0:
                    return i

list.append(MultiplesNumber(100))
TypeError: descriptor 'append' requires a 'list' object but received a 'int'

我无法将i 添加到list,知道吗?

【问题讨论】:

    标签: python python-3.x data-structures python-3.4


    【解决方案1】:

    您的代码有两个问题:

    • 您正在执行 list == [],它返回 True 或 False,因为 == 是一个比较运算符。在这种情况下,它返回False。您需要使用= 来初始化一个变量。
    • list 是 python 中一个内置类型的名称,变量名使用其他名称。

    修复它们:

    alist = []
    
    def MultiplesNumber(a):
        for i in range(1, a+1):
                 if a % i == 0:
                        return i
    
    alist.append(MultiplesNumber(100))
    

    给出正确的输出。

    【讨论】:

    • 谢谢,我不知道 list 是关键字。 == 是一个错字。
    • list 不是关键字。它是内置列表类型的名称,因此不是一个好的变量名称。但这个角色并没有被禁止,只是一个坏主意。
    • @Blckknght 已更新。谢谢
    • @shaktimaan 你得到错误的原因是,因为你有== 错字,你试图在列表中调用append type,这是因为append 是一个实例方法,因此需要一个实例(list 对象)作为第一个参数。因此,您收到的错误消息有些令人困惑。
    【解决方案2】:

    list 是隐藏您的 list 变量的内置关键字。您需要将列表分配给变量而不检查其相等性。

    lst = []
    
    
    def MultiplesNumber(a):
        return [x for x in range(1, a + 1) if a % 2 == 0]
    
    
    lst.append(MultiplesNumber(100))
    print(lst)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-31
      • 2018-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多