下面是我要用Python实现的目标:
示例:
A=[0 , 1 , 0 , 3 , 2 , 1 , 2] (indicates unsorted and repeated indices)
B=[25 , 10 , 15 , 10 , 5 , 30 , 50] (values to be summed)
C=[25+15 , 10+30 , 5+50 , 15] (summed values in a sorted manner)
到目前为止,我知道如何使用:
C= zip(*sorted(zip(A, B)))
得到结果:
[(0, 0, 1, 1, 2, 2, 3), (15, 25, 10, 30, 5, 50, 10)]
但我不知道怎么计算总数。在
创建列表C的好方法是什么?在
如果顺序重要,可以使用groupby:
或者^{} ,如果没有:
^{pr2}$请注意,python中的
dict
是无序的(您不能相信任何CPython实现细节)。在将
zip()
与dict
结合使用:请参见a demo on ideone.com。在
实际上,您想要什么实际上有点不清楚,但是如果您希望将它们按任何数字编入索引,您甚至不应该使用列表,而是使用计数器:
如果你真的想要一个列表,你可以使用
^{pr2}$但是,任何缺少的键都会导致其余的值显示在上面,这可能是也可能不是您想要的。在
相关问题 更多 >
编程相关推荐