【发布时间】:2019-05-30 01:41:44
【问题描述】:
我创建了这个独立的示例来隔离我试图理解的行为:
from pprint import pprint
TRADES_CLOSED = dict()
TRADES_ACTIVE = {
'2010-01-08 12:00': [1, 'SHORT', 20000, '2010-01-08 12:00', 92.339],
'2010-01-28 04:00': [2, 'LONG', 10000, '2010-01-28 04:00', 90.378],
'2010-01-28 12:00': [3, 'SHORT', 10000, '2010-01-28 12:00', 89.824],
'2010-01-29 04:00': [4, 'LONG', 20000, '2010-01-29 04:00', 90.164]}
TRADES_TEST = {k: TRADES_ACTIVE[k] for k in sorted(TRADES_ACTIVE)[-2:]}
pprint(TRADES_ACTIVE)
pprint(TRADES_TEST)
profit_long = TRADES_ACTIVE.pop([key for key, value in TRADES_TEST.items() if value[1] == "LONG"][0])
profit_long.extend(['2010-02-03 12:00', 91.278, 1464.54])
pprint(TRADES_ACTIVE)
pprint(TRADES_TEST)
TRADES_CLOSED[[key for key, value in TRADES_TEST.items() if value[1] == "LONG"][0]] = profit_long
pprint(TRADES_CLOSED)
我想对TRADES_ACTIVE 字典中的最后两个条目执行一些操作。因此,我创建了一个名为TRADES_TEST 的新字典,其中仅包含来自TRADES_ACTIVE 的最后两个条目。
代码产生以下输出:
{'2010-01-08 12:00': [1, 'SHORT', 20000, '2010-01-08 12:00', 92.339],
'2010-01-28 04:00': [2, 'LONG', 10000, '2010-01-28 04:00', 90.378],
'2010-01-28 12:00': [3, 'SHORT', 10000, '2010-01-28 12:00', 89.824],
'2010-01-29 04:00': [4, 'LONG', 20000, '2010-01-29 04:00', 90.164]}
{'2010-01-28 12:00': [3, 'SHORT', 10000, '2010-01-28 12:00', 89.824],
'2010-01-29 04:00': [4, 'LONG', 20000, '2010-01-29 04:00', 90.164]}
{'2010-01-08 12:00': [1, 'SHORT', 20000, '2010-01-08 12:00', 92.339],
'2010-01-28 04:00': [2, 'LONG', 10000, '2010-01-28 04:00', 90.378],
'2010-01-28 12:00': [3, 'SHORT', 10000, '2010-01-28 12:00', 89.824]}
{'2010-01-28 12:00': [3, 'SHORT', 10000, '2010-01-28 12:00', 89.824],
'2010-01-29 04:00': [4,
'LONG',
20000,
'2010-01-29 04:00',
90.164,
'2010-02-03 12:00',
91.278,
1464.54]}
{'2010-01-29 04:00': [4,
'LONG',
20000,
'2010-01-29 04:00',
90.164,
'2010-02-03 12:00',
91.278,
1464.54]}
profit_long 列表是通过弹出TRADES_ACTIVE 的特定元素创建的。正如所料TRADES_ACTIVE 短一个元素。然后profit_long 被三个新值扩展并用作TRADES_CLOSED 字典中的条目。
我不明白,为什么扩展profit_long 也会影响TRADES_TEST。我盯着这段代码看了很长时间,我想不通。对我来说profit_long 和TRADES_TEST 是完全独立的实体。这怎么可能?
【问题讨论】:
标签: python dictionary dependencies