我有一个记录器可以抓取多个元素的当前信息,并将其添加到以下格式的列表中:trade_list.append([[trade_id,results]])。
假设我们正在跟踪trade_id的4555,5555,23232,trade_list会不断将结果添加到列表中,然后我想单独找到结果的平均值。
代码如下:
Find accounts
for a in accounts:
find open trades of accounts
for t in range(len(trades)):
do some math
trades_list.append(trade_id,result)
avernum = 0
average = []
for r in range(len(trades_list)):
average.append(trades_list[r][1]) # This is the value attached to the trade_id
avernum+=1
results = float(sum(average)/avernum))
results_list.append([[trade_id,results]])
这很快就完成了。这是在两个滴答之后:
打印(results_list)
[[[53471,28.36432]],[[53477,31.67835]],[[53474,32.27664]],[[52232,1908.30604]],[[52241,350.4758]],[[53471,28.36432]],[ [53477,31.67835]],[[53474,32.27664]],[[52232,1908.30604]],[[52241,350.4758]]]
这些平均值将很快发生变化。我想使用results_list来跟踪和观察它们,然后将之前的平均值与当前的平均值进行比较
思维:
for r in range(len(results_list)):
if results_list[r][0] == trade_id:
restick.append(results_list[r][1])
resnum = len(restick)
if restick[resnum] > restick[resnum-1]:
do fancy things
答案 0 :(得分:0)
这里有一些简短的代码可以完成你认为你所描述的内容,尽管我可能会误解。你基本上完全按照你说的去做;选择具有某个trade_id的所有内容并返回其平均值。:
TID_INDEX = 0
DATA_INDEX = 1
def id_average(t_id, arr):
filt_arr = [i[DATA_INDEX] for i in arr if i[TID_INDEX] == t_id]
return sum(filt_arr)/len(filt_arr)