嘗試將列表附加到字典時,我偶然發現了一些我不太明白的東西。我試圖追加到嵌套字典的值,但我的輸出是奇怪的。Python添加到嵌套字典中的列表
對於輸入,每個list[index]
對應於other_list[index]
。
INPUTS
timestamp = [1450625399, 1450625399, 1450625399, 1450625399, 1450625399, 1450625399, 1450625399, 1450625399, 1450625399, 1450625399]
instrument = ["AAPL", "AAPL", "AAPL", "HPQ", "AAPL", "HPQ", "AAPL", "HPQ", "AAPL", "AAPL"]
side = ["sell", "sell", "buy", "buy", "buy", "buy", "buy", "buy", "buy", "sell"]
price = [1, 10, 2, 9, 3, 8.8, 4.44, 7, 5, 6]
size = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
方法
import datetime
import collections
def timestamp_to_date(stamp):
return datetime.datetime.fromtimestamp(stamp).strftime('%Y-%m-%d')
def dailyOHLC(timestamp, instrument, side, price, size):
out = []
dates = collections.defaultdict(dict)
for i in range(len(timestamp)):
try:
dates[timestamp_to_date(timestamp[i])][instrument[i]].append([side[i], price[i], size[i]])
except:
dates[timestamp_to_date(timestamp[i])][instrument[i]] = [side[i], price[i], size[i]]
print dict(dates)
我可能失去了一些東西很明顯,但我的電流輸出爲
output @print = {'2015-12-20': {u'AAPL': [u'sell', 1, 1, [u'sell', 10, 2], [u'buy', 2, 3], [u'buy', 3, 5], [u'buy', 4.44, 7], [u'buy', 5, 9], [u'sell', 6, 10]]}}
雖然我希望這樣的事情
expected @ print = {'2015-12-20': {u'AAPL': [[u'sell', 1, 1], [u'sell', 10, 2], [u'buy', 2, 3], [u'buy', 3, 5], [u'buy', 4.44, 7], [u'buy', 5, 9], [u'sell', 6, 10]]}}
我的問題出在格式[... ,[...],[...]]
而不是[[...],[...],[...]]
嵌套列表之中。
當前輸出爲'[a,b,c,[a,b,c],[a,b,c]]',而我想以不同的方式對它進行迭代, list ...所以我正在尋找一個像[[a,b,c],[a,b,c],[a,b,c]]的輸出'' – Ludisposed