【发布时间】:2021-10-02 12:33:10
【问题描述】:
在下面的代码中,我创建了 3 次字典。我想更改Strategy 2 的Ontrade 值的值。我试图获得低于 Strategy 2 的 Ontrade 值等于 False 的预期输出。我怎样才能改变它?
import numpy as np
listrange = 3
data = {}
dict_integrity = {"Array": np.array([]), "last_timestamp": 0, "last_Trades": 0, "Order_id_list": 0, "Ontrade": True, "TakeProfits": 0, "StopLoss": 0}
for x in range(listrange):
data["Strategy " + str(x)] = dict_integrity
alteration = data["Strategy " + str(2)]["Ontrade"] = False
输出:
{'Strategy 0': {'Array': array([], dtype=float64),
'Ontrade': True,
'Order_id_list': 0,
'StopLoss': 0,
'TakeProfits': 0,
'last_Trades': 0,
'last_timestamp': 0},
'Strategy 1': {'Array': array([], dtype=float64),
'Ontrade': True,
'Order_id_list': 0,
'StopLoss': 0,
'TakeProfits': 0,
'last_Trades': 0,
'last_timestamp': 0},
'Strategy 2': {'Array': array([], dtype=float64),
'Ontrade': True,
'Order_id_list': 0,
'StopLoss': 0,
'TakeProfits': 0,
'last_Trades': 0,
'last_timestamp': 0}}
预期输出:
{'Strategy 0': {'Array': array([], dtype=float64),
'Ontrade': True,
'Order_id_list': 0,
'StopLoss': 0,
'TakeProfits': 0,
'last_Trades': 0,
'last_timestamp': 0},
'Strategy 1': {'Array': array([], dtype=float64),
'Ontrade': True,
'Order_id_list': 0,
'StopLoss': 0,
'TakeProfits': 0,
'last_Trades': 0,
'last_timestamp': 0},
'Strategy 2': {'Array': array([], dtype=float64),
'Ontrade': False,
'Order_id_list': 0,
'StopLoss': 0,
'TakeProfits': 0,
'last_Trades': 0,
'last_timestamp': 0}}
【问题讨论】:
-
因为你不断地向每个键添加与值相同的字典:
data["Strategy " + str(x)] = dict_integrity。您必须创建一个新字典,并且很可能您希望所有值也都是新对象 -
换句话说,“在下面的代码中我创建了字典 3 次”是错误的。您只创建一次该字典
标签: python arrays json python-3.x dictionary