【问题标题】:appending to list within list gives AttributeError: 'int' object has no attribute 'append'附加到列表中的列表给出 AttributeError: 'int' object has no attribute 'append'
【发布时间】:2020-10-16 13:47:49
【问题描述】:

执行以下代码时,我收到错误消息“AttributeError: 'int' object has no attribute 'append'”。我知道当我尝试附加到整数时会发生此错误,例如,这里不是这种情况,因为我通过 type(section[len(section)-1]) 检查了返回 list

def increasing_section(a_list):
    section = [[a_list[0]]]
    i = 1
    while i < len(a_list):
        if a_list[i-1] < a_list[i]:
            section[len(section)-1].append(a_list[i])
        else:
            section.append(a_list[i])
        i += 1
    return section

【问题讨论】:

  • 这行section[len(section)-1].append(a_list[i])的预期行为是什么?

标签: python list append


【解决方案1】:

错误来自这一行:

section[len(section)-1].append(a_list[i])

因为在某些时候,当您的 if 条件不满足时,以下行:

section.append(a_list[i])

将在部分添加一个整数,第一行将产生错误,因为section[len(section)-1] 将是一个整数

【讨论】:

    【解决方案2】:

    我不确定您到底想做什么,但要解决此问题,您需要更改 section[len(section)-1].append(a_list[i])。因为section[len(section)-1]会返回一个整数,而整数没有append方法,所以如果你想在特定索引处插入一个元素到列表中,试试section.insert(index, value)

    【讨论】:

      猜你喜欢
      • 2020-12-09
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 2021-07-25
      • 2015-09-26
      • 2022-12-01
      • 2017-03-08
      相关资源
      最近更新 更多