使用包含字典的数组时遇到问题。我将代码尽可能地小,以便更容易地看到问题,但我使用的是更大的数组
我只想使用数组的两个副本进行操作,并根据需要更改它们的值,对于数组的不同副本,每个值都可能不同。因此,我使用其中一个副本进行操作,但我不明白为什么要将操作也复制到阵列的另一个副本中
守则:
#set of data
value_indicador = [{'value': 98.0}]
value_indicador_positivo = value_indicador
value_indicador_negativo = value_indicador
for x in range(0, len(value_indicador_negativo)):
value_indicador_negativo[x]['value'] = value_indicador_negativo[x]['value']*0.95
#what I'd like to get
value_indicador = [{'value': 98.0}]
value_indicador_positivo = [{'value': 98.0}]
value_indicador_negativo = [{'value': 93.1}]
#what I'm actually getting
value_indicador = [{'value': 93.1}]
value_indicador_positivo = [{'value': 93.1}]
value_indicador_negativo = [{'value': 93.1}]
您没有创建dict的副本,只是对同一个dict的另一个引用。 要真正复制它,您只需执行以下操作:
至于名单:
因此,您的示例需要如下所示:
相关问题 更多 >
编程相关推荐