我们在Scala中有一个列表:
val testList = List("Sita" -> 1, "Sita" -> 2, "Ram" -> 3, "Ram" -> 4, "Shyam" -> 5)
我将其应用到列表中以按Scala中的键将值分组:
val res = testList.groupBy(_._1).map { case (k, v) => k -> v.map(_._2).sum }
结果我得到了:
Map(Shyam -> 5, Ram -> 7, Sita -> 3)
我想在python中做同样的事情,请帮帮我:
testList = [("Sita", 1), ("Sita", 2), ("Ram", 3), ("Ram", 4), ("Shyam", 5)]
编辑:如果我有这样的列表怎么办:
testList = [("Sita_English", 1), ("Sita_Maths", 2), ("Ram_English", 3), ("Ram_Maths", 4), ("Shyam_English", 5)]
我认为您想以功能性方式提供解决方案:
out = list(map(lambda v:(v[0], sum(map(lambda s: s[1], v[1]))), groupby(testList, key=lambda x: x[0])))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句