У меня есть эта проблема вместо того, чтобы каждый вложенный dict [список] получал свои собственные значения, когда l oop перебирает ticker_list, они все получают одинаковые значения.
любая помощь будет принята с благодарностью. Приветствия
ticker_list = ("AUD_USD","EUR_USD","USD_JPY","NZD_USD","EUR_JPY","GBP_USD","AUD_JPY")
granularity = "M15"
Defaults = {"bias":"x",
"Top_times":[0,0],
'Active_prices': [0, 0]}
active_dict = dict.fromkeys(ticker_list, Defaults)
pp.pprint(active_dict)
def active_range(ticker_list,direction,ref,active_dict):
try:
for ticker in ticker_list:
print(ticker)
### these 2 values below will be populated from pandas calculations hidden
### for simplification, i have used simple assignments to help show problem
toptime = ticker+"time"
long_t_price = "23"+ticker
active_dict = upkeep_dict(active_dict,ticker,"Top_times",toptime)
active_dict = upkeep_dict(active_dict,ticker,"Active_prices",long_t_price)
return active_dict
#exception removed for simplification
def upkeep_dict(active_dict_temp,ticker,path,new_item,list_limit=2):
## Check length of list is not > list_limit ###
if len(active_dict_temp[ticker][path])>(list_limit-1):
active_dict_temp[ticker][path].pop(0)
active_dict_temp[ticker][path].append(new_item)
else:
active_dict_temp[ticker][path].append(new_item)
return active_dict_temp
когда я ввожу это
fff = active_range(ticker_list,"Long",0,active_dict)
я получаю это для fff
{'AUD_USD': {'bias': 'x',
'Top_times': ['GBP_USDtime', 'AUD_JPYtime'],
'Active_prices': ['23GBP_USD', '23AUD_JPY']},
'EUR_USD': {'bias': 'x',
'Top_times': ['GBP_USDtime', 'AUD_JPYtime'],
'Active_prices': ['23GBP_USD', '23AUD_JPY']},
'USD_JPY': {'bias': 'x',
вместо этого
{'AUD_USD': {'bias': 'x',
'Top_times': ['0', 'AUD_USDtime'],
'Active_prices': [0, '23AUD_USD']},
'EUR_USD': {'bias': 'x',
'Top_times': ['0', 'EUR_USDtime'],
'Active_prices': ['0', '23EUR_USD']},
'USD_JPY': {'bias': 'x',
что я делаю неправильно?