[英]Difference between initialising a predefined list vs appending in python
[英]Difference between appending a list vs appending list[:]
我正在尝试使用 DFS 遍历字符串并将其附加以突出显示该行。 但是,如果我使用result.append(currlist)
与result.append(currlist[:])
,结果是完全不同的。 前者不起作用,为什么?
class Solution:
def dfs(self, start, s, currlist, result):
if start >= len(s):
result.append(currlist[:]) # <--
return
for end in range(start, len(s)):
currlist.append(s[start:end+1])
self.dfs(end+1, s, currlist, result)
currlist.pop()
def partition(self, s: str) -> List[List[str]]:
result = []
self.dfs(0, s, [], result)
return result
list[:]
创建对象的副本
例子:
x = []
y = [0, 1]
x.append(y)
print(x)
y[0] = 2
print(x)
输出:
[[0, 1]] [[2, 1]]
x = []
y = [0, 1]
x.append(y[:])
print(x)
y[0] = 2
print(x)
输出:
[[0, 1]] [[0, 1]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.