Python:我创建了2个列表,我对其中之一进行了排序,并且都对它们进行了排序

Pavilion Sahota

我有一个名为self.nodePathList的列表,其中包含[782,455,231]。然后,我将其放入另一个列表变量:self.sortedNodePath = self.nodePathList。这两个列表现在包含相同的内容。我对self.sortedNodePath进行排序。但是,它们都被排序了。我反复检查了代码,但没有出现任何拼写错误或使用错误的名称。如果您要使用下面的代码

self.sortedNodePath = self.nodePathList

#######sorting

for passnum in range(len(self.sortedNodePath)-1,0,-1):
    for i in range(passnum):
           if self.sortedNodePath[i]>self.sortedNodePath[i+1]:
                  self.temp = self.sortedNodePath[i]
                  self.sortedNodePath[i] = self.sortedNodePath[i+1]
                  self.sortedNodePath[i+1] = self.temp

#######END OF SORTING
亚历克斯·贝利先生

在你的榜样,self.sortedNodePath并且self.nodePathList都指向同一个对象。当您对该对象进行排序时,两个变量仍指向该对象。

您需要使用以下方法创建一个新对象:

self.sortedNodePath = list(self.nodePathList)

举个例子:

foo = ['test', 'foo']
bar = foo

print id(foo)
>>> 23367192

print id(bar)
>>> 23367192   # You can see both foo and bar have the same object ID

bar = list(foo)

print id(bar)
>>> 23387392  # Now using list(), bar has a separate object ID from foo

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果我创建一个原子变量,线程之间是否对原子变量进行了所有操作?

在执行Shell脚本时,我创建了.txt文件,并在保存脚本退出后对其进行了编辑

Tensorflowjs期望3个维度,即使我在Python中使用2个对其进行了训练

检查是否对numpy数组进行了排序

是否对来自ServiceLoader的Iterable对象进行了排序?

我有一个代码,其中调用了Lateinit变量后对其进行了初始化,但我不知道如何

如果我创建了一个角色,并将其分配给用户,但对角色进行了更改,那么我是否必须将其重新授予用户?

使用IComparer <string>排序16个元素至少进行了100000个比较

我无法连接3个表,其中一个表对其列进行了两次连接

如何找出JVM对我的代码进行了哪些优化?

git:合并之前我进行了什么提交?

Python是否在内部跟踪何时对内容进行了排序?

尝试创建python程序,但使用def进行了简化

进行了Realm响应的翻新2

针对循环python进行了优化

为什么尽管Debug进行了调试,但Release版本却没有构建,而仅对使用相同源文件的项目之一进行构建?

一位同事已对我的承诺进行了承诺-怎么做?

如何确保我对std :: set中的每一对元素都进行了插入操作?

我对 wordpress 父主题中的模板文件进行了一些自定义更改。我如何确保主题更新时它们不会被覆盖?

jQuery检测更改输入,其中JS进行了更改

我的 C# 代码对所有 if 语句都进行了彻底检查,尽管它们都是错误的

mysql对高分进行了排序,使玩家位于第8位,以显示完整的15个结果

在Powerquery中删除重复项会忽略我已经对数据进行了排序(因此删除了错误的重复项)

RuntimeError:梯度运算所需的变量之一已通过就地操作进行了修改

当我已经为另一个函数进行了计算时,为什么不能将这些计算调用到我的构建中

我如何从2个表中进行加法并将值插入其中之一

我对Dockerfile进行了更改,但是我的“ docker build”没有反映出更改

我想知道我们是否确实进行了最后5笔交易

函数可以知道它们是否已经在Python(joblib)中进行了多进程处理