Python更改一个数组中的元素会更改一个完全不同的数组中的元素

2024-03-28 23:46:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正试图在我的程序中为字母创建一个范围列表。我已经通过使用一个临时变量'censorRange'来获取实例的范围,然后将该变量附加到一个'censors'变量,以便在函数末尾返回

问题是,当我更改'censorRange'变量时,它也会更改'censors'变量中的元素。例如: 最初,'censorRange'=[10,15],和'censors'=[[10,15]]。当我调试程序时,当“censorRange”从“[10,15]”转到“[17,23]”,那么“censors”也将转到[[17,23]]。然后在节目结束时,审查员会给我[[17,23],[17,23]],而不是[[10,15],[17,23]]

为什么会出现这种情况,如何解决问题?我已经附上代码,我一直在使用下面。如果你有任何建议,请告诉我,我已经有一段时间为此感到沮丧。先谢谢你

代码:

censors = []
censorRange = [None, None]
for match in matches:
    if((censorRange[0] != None) and (censorRange[1] != None)
       and (match.span()[0] > censorRange[1])):
            if(not lettersBetween(text, censorRange[1], match.span()[0], 5)):
                censorRange[1] = match.span()[1]
                censors.pop()
                censors.append(censorRange)
                censorRange[1] = match.span()[1]
            else:
                censors.append(match.span())
                censorRange[0] = match.span()[0]
                censorRange[1] = match.span()[1]
    else:
        censors.append(match.span())
        censorRange[0] = match.span()[0]
        censorRange[1] = match.span()[1]
return censors

Tags: and实例代码程序none列表ifmatch