list.append()在循环中会有赋值覆盖
求排列的代码
会发现每一层的循环最后的结果都是最后一个
百度了一下也没怎么看明白
好像是因为append(ans)这里传的是ans的地址,而不是一个实数?
括号里的 ans每一层的循环中,每一次都是改变的它地址中的值,所以lsit中的值也跟着变,
所以除了第一次,后面每次判断列表里有没有ans的时候它都说有,以至于一直加不进去,或者应该说一直被覆盖
解决方法:
做个切片就好了不过这样会耗费更多的内存吧?不太清楚
list.append()在循环中会有赋值覆盖
百度了一下也没怎么看明白
好像是因为append(ans)这里传的是ans的地址,而不是一个实数?
括号里的 ans每一层的循环中,每一次都是改变的它地址中的值,所以lsit中的值也跟着变,
所以除了第一次,后面每次判断列表里有没有ans的时候它都说有,以至于一直加不进去,或者应该说一直被覆盖
解决方法:
做个切片就好了不过这样会耗费更多的内存吧?不太清楚