我有一个嵌套字典,其中包含有关许多不同对象的一堆数据(我的意思是非编程意义上的对象)。字典的格式是 allData[i][someDataType],其中 i 是我拥有数据的对象的编号,而 someDataType 是与相关对象关联的特定数据数组。
现在,我已经定义了一个函数,它需要一个特定的数据数组来为每个对象执行计算。数据数组称为cleanFDF
。所以我把它和它需要工作的一堆其他东西一起提供给我的函数。我这样称呼它:
rm.analyze4complexity(allData[i]['cleanFDF'], other data, other data, other data)
在函数本身内部,我立即将数据重新分配cleanFDF
给另一个变量名,即clFDF
. 即最终结果是:
clFDF = allData[i]['cleanFDF']
然后,我必须将低于某个阈值的所有数据归零,如下所示:
clFDF[ clFDF < threshold ] = 0
好的 - 该功能按预期工作。但是现在当我尝试在主脚本中绘制原始 cleanFDF 数据时,在 clFDF 中归零的条目也会在allData[i]['cleanFDF']
. 怎么回事?显然这里发生了一些我不明白的事情。
为了使事情变得更奇怪(从我的角度来看),我试图通过在调用函数之前将数组“保存”到另一个变量来解决这个问题。即我愿意
saveFDF = allData[i]['cleanFDF']
然后运行该函数,然后cleanFDF
使用“已保存”数据更新条目:
allData[i].update( {'cleanFDF':saveFDF} )
但不知何故,只需在函数修改中执行 clFDF[ clFDF < threshold ] = 0 clFDF
,saveFDF
并allData[i]['cleanFDF']
在主 friggin' 脚本中,将相同数组索引处的所有整数清零!好像它们都是以某种方式关联的全局变量,但我在任何地方都没有做出这样的声明......
我是一个绝望的 Python 新手,所以毫无疑问我不了解它的工作原理。任何帮助将不胜感激!