的每個節點我寫一個函數成長樹:傳遞修改列表,二叉樹
def collect_append(collect,split):
collect.append(split)
return collect
def tree(string,passwords,collect): #collect is a list and passwords is also a list
matching_list = []
match = 0
if len(string)==0:
print(collect)
return 0
for j in passwords:
for i in range(min(len(j),len(string))):
if string[i]!=j[i]:
break
else :
matching_list.append(j)
match = match + 1
if match == 0:
return 1
else:
for split in matching_list:
x =tree(string.strip(split),passwords,collect_append(collect,split))
return x
我的問題是,在matching_list每個分割(比如二),我想添加不同的字符串在這一點上的現有名單(即我想要兩個版本的名單)。
在這種情況下,我使用的collect_append
函數是在for
循環的第一次迭代中修改列表,並將其用於進一步的迭代。我想要的只是修改collect
列表僅用於參數,並且不會永久更改它。有沒有辦法做到這一點?
歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在發佈您的MCVE代碼並準確描述問題之前,我們無法爲您提供有效的幫助。 我們應該能夠將發佈的代碼粘貼到文本文件中,並重現您描述的問題。 – Prune