平均列2D数组

2024-09-30 01:25:23 发布

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

我有一个2D arraylist数据,它填充了这样一个循环:

data.append([TrueID,rssi])

8次之后,我得到了这个数据值:

data =

    [['469420270013002A', -90], 
     ['469420270005000C', -89], 
     ['469420270013002A', -94], 
     ['4694202700270003', -53], 
     ['469420270005000C', -91], 
     ['469420270013002A', -92], 
     ['4694202700270003', -55]]

我想计算每个TrueID的平均RSSI值,并用它的TrueID返回最低的RSSI值。你知道吗

所以我需要输出:

print "The weakest ID is " ID_result " with Rssi value of " rssi_result
>>The weakest ID is '4694202700270003' with Rssi value of -54

有必要将2D数组填充到20个值,并像FIFO系统一样继续。你知道吗

所有的建议都是受欢迎的(即使你知道其他方法来获得相同的结果)!你知道吗

谢谢你!你知道吗


Tags: ofthe数据iddataisvaluewith
1条回答
网友
1楼 · 发布于 2024-09-30 01:25:23

使用^{}max

>>> from collections import defaultdict                                   
>>> lis = [['469420270013002A', -90],                                 
     ['469420270005000C', -89], 
     ['469420270013002A', -94], 
     ['4694202700270003', -53], 
     ['469420270005000C', -91], 
     ['469420270013002A', -92], 
     ['4694202700270003', -55]]
>>> d = defaultdict(list)                
>>> for k, v in lis:                                                      
    d[k].append(v)
...     

现在d包含:

>>> d
defaultdict(<type 'list'>,
{'469420270005000C': [-89, -91],
 '4694202700270003': [-53, -55],
 '469420270013002A': [-90, -94, -92]})

现在使用max和dict理解来计算平均值并找出max(key,value)对:

>>> max({k:sum(v)/float(len(v)) for k, v in d.items()}.items(), key=lambda x:x[1])
('4694202700270003', -54.0)

相关问题 更多 >

    热门问题