Python 平均列2D数组

Python 平均列2D数组,python,arrays,list,average,multidimensional-array,Python,Arrays,List,Average,Multidimensional Array,我有一个2D arraylist数据,它用如下循环填充: data.append([TrueID,rssi]) 经过8次之后,我得到了以下数据值: data = [['469420270013002A', -90], ['469420270005000C', -89], ['469420270013002A', -94], ['4694202700270003', -53], ['469420270005000C', -91],

我有一个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系统一样继续

欢迎提出所有建议(即使您知道其他方法可以获得相同的结果)

谢谢大家!

使用和
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]})

-54
实际上将是此处的最大值。请提供您尝试过的示例代码。谢谢Ashwini Chaudhary!它的工作原理与u所说的一样,还有一件事:20个值覆盖原始值后如何像fifo系统一样执行?@user3055369使用
maxlen=20
,获得fifo系统。我通过使用append和pop解决了这个问题:
lis.append([TrueID,rssi])d2counter+=1如果d2counter>=20:lis.pop(0)
>>> max({k:sum(v)/float(len(v)) for k, v in d.items()}.items(), key=lambda x:x[1])
('4694202700270003', -54.0)