2016-05-04 7 views
0

im Wesentlichen habe ich einen Strom von Daten in diesem Code kommt, die jede Minute mit den neuesten Preisen aktualisiert:Python: Die beste Weg, Daten in einer Liste zu setzen und als Zeitaktualisierung fortschreitet und ältesten Wert löscht

prices = data.history(context.stocks, "close", 15600, "1m") 

Ich versuche, diese historischen Daten in eine Art Liste zu bringen, wenn jede Minute diesen Code den neuesten Preis eingibt und der älteste, in diesem Fall wird die 15600. Minute gelöscht.

Wie würde ich das machen? Irgendwie ein Fenster benutzen? oder einfach ein Code, um den neuesten Wert zu einer Liste hinzuzufügen und den ältesten zu löschen.

ich jede Hilfe dankbar,

Dank Mike

+1

@tmthydvnprt Tippfehler, sorry! – Mike

Antwort

1

Sie können maxlen mit deque mit Option.

Wenn maxlen nicht angegeben ist oder nicht, kann deques auf eine beliebige Länge anwachsen. Andernfalls wird die Deque auf die angegebene maximale Länge begrenzt. Sobald eine Deque mit beschränkter Länge voll ist, werden beim Hinzufügen neuer Elemente eine entsprechende Anzahl von Elementen vom entgegengesetzten Ende verworfen.

from _collections import deque 
d = deque(maxlen = 10) 
for i in range(20): 
    d.append(i) 

print(d) 
deque([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], maxlen=10) 
+0

@Danke, das ist perfekt !! – Mike