【发布时间】:2021-04-04 19:42:41
【问题描述】:
所以,我敢肯定以前有人问过类似的问题,但我找不到我需要的东西。
我有一个输出二维数组的程序,如下所示:
arr = [[0.2, 3], [0.3, "End"], ...]
可能有更多或更少的元素,但每个都是一个 2 元素数组,其中第一个值是浮点数,第二个值可以是浮点数或字符串。
这两个值都可能重复。在每个数组中,第二个元素只取几个可能的值。
我想要做的是将数组中第一个元素的值与第二个元素具有相同值的值相加,并输出一个没有这些重复值的类似数组。
例如:
input = [[0.4, 1.5], [0.1, 1.5], [0.8, "End"], [0.05, "End"], [0.2, 3.5], [0.2, 3.5]]
output = [[0.5, 1.5], [0.4, 3.5], [0.85, "End"]]
如果输出数组按第二个元素排序(浮点数升序,字符串在末尾),我将不胜感激,尽管这不是必需的。
编辑:感谢您的两个答案;我决定使用 Chris 的那个,因为代码对我来说更容易理解,尽管 groupby 似乎是一个旨在解决这个问题的函数,所以我也会尝试阅读它。
更新:根据手头任务的性质,浮点数的值始终为正,因此我使用负值来停止使用任何字符串 - 现在我有一些 if 语句来检查那些“编码”负值并在它们被打印出来之前再次用字符串替换它们,因此现在排序更容易了。
【问题讨论】:
标签: python arrays multidimensional-array