输入-->;a=[[297151320]、[29315305]、[296151320]、[295162306]、[297160309]、[300158321]
I have a list inside a list. I need to group by the third element in the list a[i][2] with tolerance + or - 5
输出-->;a=[[297151320]、[293151318]、[296151321]、[295162306]、[297160309]、[300158305]
Later I need to take an average of each subgroup such as [297, 151, 320], [293, 151, 318], [296, 151, 321] = [(297+293+296)/3,(151+151+151)/3,(320+318+321)/3] simillarly for the next group
final output
最终输出-->;a=[[295151320]],[[297160307]]]
有人能帮忙吗?
对不起,我没有得到你想要的。因为每个列表的ur值不一致。但是,你是说像这样吗
输出:
[[256, 249, 255], [254, 255, 259]]
一种方法是创建一个生成器函数来进行公差分组。此函数假定列表已排序,因此需要传入已排序的列表,或对其进行修改以在函数中进行排序。我相信有人会用
itertools.groupby
找到一种方法来做到这一点然后在排序列表上调用此函数(按第3项):
其中给出了分组:
然后可以压缩相应的元素并计算平均值:
平均值:
相关问题 更多 >
编程相关推荐