我目前正试图在我的程序中为字母创建一个范围列表。我已经通过使用一个临时变量'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
当您将一个列表添加到另一个列表时,它不会自动生成副本。如果要这样做,必须明确说明:
相关问题 更多 >
编程相关推荐