Я пытаюсь использовать цикл for для генерации случайных значений цен на товары, изменяя значение цен на товары в предварительно определенном словаре.
Новые значения этого предопределенного словаря затем добавляются в конец другого предопределенного словаря, чтобы можно было сохранить историю цен.
вот мой код:
tradable_good_prices= {'iron' : 0, 'gold' : 0, 'lead' : 0, 'ruby' : 0 'emerald' : 0, 'steel' : 0, 'diamond' : 0}
item_list = tradable_good_prices.keys()
item_price_history = {}
def Random_economy(generations):
for generation_number in range(0, generations):
for list_number in range(0, len(item_list)):
tradable_good_prices[item_list[list_number]] = np.random.random_integers(100,1000)
print(tradable_good_prices)
item_price_history[generation_number] = tradable_good_prices
print(item_price_history)
Random_economy(2)
код принимает поколения в качестве аргумента количества итераций цикла for. И используя значение 2 для поколений, этот вывод создается на консоли:
{'steel': 821, 'diamond': 477, 'lead': 325, 'gold': 914, 'iron': 542, 'emerald': 360, 'ruby': 705}
{0: {'steel': 821, 'diamond': 477, 'lead': 325, 'gold': 914, 'iron': 542, 'emerald': 360, 'ruby': 705}}
{'steel': 751, 'diamond': 158, 'lead': 322, 'gold': 662, 'iron': 180, 'emerald': 846, 'ruby': 570}
{0: {'steel': 751, 'diamond': 158, 'lead': 322, 'gold': 662, 'iron': 180, 'emerald': 846, 'ruby': 570}, 1: {'steel': 751, 'diamond': 158, 'lead': 322, 'gold': 662, 'iron': 180, 'emerald': 846, 'ruby': 570}}
Как видно, предыдущие значения перезаписываются, я предполагаю, что это довольно простое объяснение, например, «словарь, хранящий значения разных поколений, ссылается на первый для своих значений», но я нигде не могу найти помощи по этому вопросу.
Так может кто-нибудь, пожалуйста, объясните мне, что я делаю неправильно.