AttributeError:'int'对象没有属性'insert'

Ste*_*rds 2 python insert attributeerror

救命!当我让一件事情起作用时,其他事情却不起作用!再次,我相信经验丰富的眼睛很简单,但是我很挣扎!这是我生成清单和清单数据的代码。

#Frame Creation


allframes = []

for n in range (0, (workingframes*archnodes*3)):
    allframes.append(n)

frames = allframes

print frames



#Frame Population

for f in range (0, workingframes):

    if f<=(workingframes/2):

        for x in range (0, (archnodes)):
            frames[((archnodes*3)+f)].insert(((archnodes*3)+f), (archstartred[x]))
            frames[((archnodes*3)+f+workingframes)].insert(((archnodes*3)+f+workingframes),(archstartgrn[x]))
            frames[((archnodes*3)+f+workingframes*2)].insert(((archnodes*3)+f+workingframes*2),(archstartblu[x]))

        for y in range (0, nodesperframe):
            archstartred.pop()
            archstartgrn.pop()
            archstartblu.pop()
            archstartred.insert(0, backred)
            archstartgrn.insert(0, backgrn)
            archstartblu.insert(0, backblu)

    else:
        for y in range (0, nodesperframe):
            archstartred.pop(0)
            archstartgrn.pop(0)
            archstartblu.pop(0)
            archstartred.append(backred)
            archstartgrn.append(backgrn)
            archstartblu.append(backblu)

        for x in range (0, (archnodes)):
            frames[(archnodes*3)+f].insert((archnodes*3), (archstartred[x]))
            frames[(archnodes*3)+f+workingframes].insert(((archnodes*3)+1),(archstartgrn[x]))
            frames[(archnodes*3)+f+workingframes*2].insert(((archnodes*3)+2),(archstartblu[x]))
Run Code Online (Sandbox Code Playgroud)

我不断收到这个可爱的错误:

AttributeError: 'int' object has no attribute 'insert'
Run Code Online (Sandbox Code Playgroud)

我计划在填充列表后将列表转换为数组,以便可以按需要的方式对其进行操作。我敢肯定有一种更简单的方法可以做到这一点,但是我不知道,我是Python的新手!

Lev*_*von 5

这些表达式frames[((archnodes*3)+f)](所有3个版本)的结果均为整数,并且您试图insert()在它们上调用方法,这是导致错误的原因。

f是在封闭的for循环中创建的整数,并且archnodes在第一个for循环中使用的方式还表示它们是数字。frames是在第一个循环中也创建的数字列表,因此您正在索引一个数字列表,然后尝试insert()在列表中的特定数字上调用该方法。如错误消息所述,

'int' object has no attribute 'insert'

该类型int没有insert方法。

更新以上评论:

您可以在列表中添加/删除/插入项目,但是不能添加/删除/插入整数。请参阅清单上的简短教程/参考。因此,例如,以插入一个项目到列表中,你会使用这个方法/做法:

list.insert(index, obj)
Run Code Online (Sandbox Code Playgroud)

所以你的情况

frames.insert(index, .. )
Run Code Online (Sandbox Code Playgroud)

frames[index].insert(..)
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。