循环中append值被覆盖的问题

list.append()在循环中会有赋值覆盖




求排列的代码


会发现每一层的循环最后的结果都是最后一个


百度了一下也没怎么看明白

好像是因为append(ans)这里传的是ans的地址,而不是一个实数?

括号里的 ans每一层的循环中,每一次都是改变的它地址中的值,所以lsit中的值也跟着变,

所以除了第一次,后面每次判断列表里有没有ans的时候它都说有,以至于一直加不进去,或者应该说一直被覆盖



解决方法:

做个切片就好了不过这样会耗费更多的内存吧?不太清楚


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容