Python - 如何更改列表列表中的值?

Wic*_*xin 10 python python-2.7

我有一个列表列表,列表中的每个列表包含5个项目,如何更改列表中项目的值?我尝试过以下方法:

    for [itemnumber, ctype, x, y, delay] in execlist:
        if itemnumber == mynumber:
            ctype = myctype
            x = myx
            y = myy
            delay = mydelay
Run Code Online (Sandbox Code Playgroud)

最初我有一个元组列表,但我意识到我不能更改元组中的值,所以我切换到列表但我仍然无法更改任何值.如果我在for循环中打印ctype,x,y,delay,myctype,myx,myy或mydelay,似乎一切正常,但如果我之后打印execlist,我看到没有任何改变.

小智 13

问题是您正在创建列表的副本,然后修改副本.你想要做的是修改原始列表.试试这个:

for i in range(len(execlist)):
    if execlist[i][0] == mynumber:
         execlist[i][1] = myctype
         execlist[i][2] = myx
         execlist[i][3] = myy
         execlist[i][4] = mydelay
Run Code Online (Sandbox Code Playgroud)