Python查找包含多个元素的列表中元素的平均值

2024-06-01 10:58:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个ticker,它可以获取多个元素的当前信息,并以trade的格式将其添加到列表中_列表.append([[trade\u id,results]])。你知道吗

假设我们正在跟踪trade\u id的4555、5555、23232,trade\u列表会一直滴答作响,将他们的结果添加到列表中,然后我想分别找到他们结果的平均值。你知道吗

代码的工作原理如下:

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]])

这个填得很快。这是在两个节拍之后:

打印(结果列表)
[[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]]

这些平均值会很快移动和变化。我想使用结果列表来跟踪和观察它们,然后将以前的平均值与当前的平均值进行比较

思考:

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

Tags: inid列表forlenrangetradesresults
1条回答
网友
1楼 · 发布于 2024-06-01 10:58:59

这里有一些简短的代码,我认为你已经描述了,虽然我可能误解了。你基本上完全按照你所说的去做;选择所有有特定交易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)

相关问题 更多 >