我不明白如何重用列表。Python试图清除并重用列表
下面的代码:
brackets = ["(",")"]
char = "abcdefghijklmnopqrstuvwyxz"
chars = list(char)
nums = ["0","1","2","3","4","5","6","7","8","9"]
newstrlist = []
memoryinbracket = []
def unpack(str):
i = 0
liststr = list(str)
while "(" in liststr:
index = liststr.index("(")
counter = 1
i = index + 1
while i <= len(liststr):
item = liststr[i]
if liststr[i] == ")":
counter = counter - 1
if counter > 0:
memoryinbracket.append(item)
else:
break
elif item == "(":
memoryinbracket.append(item)
counter = counter + 1
else :
memoryinbracket.append(item)
i = i+1
unpack(memoryinbracket)
inbracket = newstrlist
e = index
if liststr[i+1] in nums:
nr = int(liststr[i+1])
newl = ''.join(inbracket)
ch = (newl)*(nr-1)
inbracket.append(ch)
liststr.pop(i+1)
while e<=i:
liststr.pop(index)
e = e+1
liststr.insert(index,inbracket)
**del newstrlist[:] ??????
newstrlist = []**
for i in range (len(liststr)):
if liststr[i] in chars:
newstrlist.append(liststr[i])
if liststr[i] in nums:
if liststr[i-1] in chars:
if len(liststr)>i+1 and liststr[i+1] in nums:
nr = int(liststr[i]+liststr[i+1])
ch = liststr[i-1]*(nr-1)
newstrlist.append(ch)
elif liststr[i] == "0":
newstrlist.remove(liststr[i-1])
else:
nr = int(liststr[i])
ch = liststr[i-1]*(nr-1)
newstrlist.append(ch)
i = i+1
i = 0
def test_unpacks():
unpack("a5(c3b)2ew")
unpack("a3bc2")
unpack("a10bc2")
unpack("a(bc)2d")
unpack("a(bc)d")
unpack("(a2)2")
unpack("a(b2c)d")
test_unpacks()
我需要newstrlist在某些时候被清除,但inbracket不改变被重复使用newstrlist之后。
你正在寻找'somelist [:] = []',它在不改变引用的情况下清除列表? – kay 2014-09-23 10:30:07