我的名为myList
的列表没有更新。你知道吗
我在一个函数中定义它,在这个函数中使用它
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
myList = []
a = []
for i in range(len(nums)):
# print("---i",nums[i])
# print(a[0])
for j in range(i+1,len(nums)):
# print("----j",nums[j])
for k in range(i+2,len(nums)):
# print("-----k",nums[k])
if nums[i]+nums[j]+nums[k] == 0:
print("m into it now for i",nums[i],"j",nums[j],"k",nums[k])
print("oooo",myList)
a.append(nums[i])
a.append(nums[j])
a.append(nums[k])
# print(myList)
myList.append(a)
print("....",myList)
print("---",a)
a.clear()
print(myList)
获取输出为:
[[], [], [], []]
Python将一切都视为对象。 当你有这样的清单:
这里
my_list
是对存储在内存中的列表[1,2,3]
的引用。你知道吗现在,如果您将
my_list
传递给任何其他函数或在任何其他对象中使用它,就像您在myList
中附加了a
,那么这里基本上python使用它作为对原始列表的引用。现在myList
已经在里面存储了a
的引用。 这就是为什么清除a
的内容时,它也会影响myList
的内容。你知道吗您不必清除list
a
的内容。就像这样每次在for
循环中重新初始化它。你知道吗更新: 正如Artog在评论中提到的
通过在函数末尾运行
print(list(map(hex,map(id, myList))))
,您可以很容易地看到这一点。这将显示内存地址与原始代码的所有条目相同,但与新代码不同。你知道吗相关问题 更多 >
编程相关推荐