【问题标题】:AttributeError: 'int' object has no attribute 'append' simple problem with my listAttributeError: 'int' object has no attribute 'append' 我的列表有简单的问题
【发布时间】:2020-12-09 16:50:30
【问题描述】:

我的代码:

numbers = [1, 2, 3, 4, 5]
doubled_numbers = []

for num in numbers:
    doubled_numbers = num * 2
    doubled_numbers.append(doubled_numbers)

print(doubled_numbers)

我明白了:

Traceback (most recent call last):
  File "C:/Users/neman/Desktop/Junior Developer Vezbe/list comprehension.py", line 12, in <module>
    doubled_numbers.append([doubled_numbers])
AttributeError: 'int' object has no attribute 'append'

我不知道为什么不起作用,是我遗漏了什么还是有错字?这是一件很简单的事情,但很困扰我

【问题讨论】:

  • doubled_numbers = num * 2 将用int 值覆盖,而不是使用doubled_numbers.append(num * 2) 并删除上面的行

标签: python python-3.x list for-loop append


【解决方案1】:

您正在覆盖doubled_numbers 中的doubled_numbers = num * 2

更改变量名称,如:

for num in numbers:
    doubled_number = num * 2
    doubled_numbers.append(doubled_number)

【讨论】:

    【解决方案2】:

    doubled_numbers = num*2 将列表 doubled_numbers 覆盖为整数 (num*2)。

    要解决此问题,您必须将变量名称更改为 new_number 之类的名称,将代码更改为:

    numbers = [1, 2, 3, 4, 5]
    doubled_numbers = []
    
    for num in numbers:
        new_number = num * 2
        doubled_numbers.append(new_number)
    
    print(doubled_numbers)
    

    另外,您可以删除一行代码并将num*2 的值直接附加到您的列表中:

    doubled_numbers.append(num*2)
    

    然后删除它上面的代码行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 2018-02-05
      • 2022-12-01
      • 2021-11-18
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多