对列表中每个元素索引的最大值求和 [关闭]

Posted

技术标签:

【中文标题】对列表中每个元素索引的最大值求和 [关闭]【英文标题】:Sum the max of each element index in list [closed] 【发布时间】:2022-01-05 13:55:28 【问题描述】:

我有两个列表

task=[1,1,1,1,2,2,3,4,5,5]
hours=[1,7,6,2,3,6,5,2,4,6]

-.假设索引中的值是 1,2,3,4,5 没有重复。我想要。总和(以小时为单位的前四个索引的最大值(因为任务中 1 号重复 4 次),以小时为单位的 5,6 索引的最大值(因为任务中的 2 号重复 2 次),以小时为单位的 7 索引的最大值,最多 8 个索引(小时),最多 9,10 个索引(小时)。 . . 所以我需要以小时为单位找到任务中每个值的最大值之和

【问题讨论】:

您能否举例说明您的样本数据的结果应该是什么样的? 确定输出将是:该项目可以在 26 天内完成。 26 来自最大前四个索引 [1,7,6,2] 。最大 5,6 索引 [3,6]。最大 7 个索引 [5]​​。最多 8 个索引 [2]。最大 9,10 索引 [4,6]。然后对max的结果求和 【参考方案1】:

您可以从列表中创建字典/数据框,并按任务分组并汇总:

import pandas as pd
task=[1,1,1,1,2,2,3,4,5,5]
hours=[1,7,6,2,3,6,5,2,4,6]
df = pd.DataFrame('task': task, 'hours': hours)
print(df.groupby('task').agg(sum))

输出:

      hours
task       
1        16
2         9
3         5
4         2
5        10
编辑:似乎我误解了这个问题。

您可以使用相同的逻辑来找到最大值,然后将它们相加:

max_val = df.groupby('task').agg(max)
print(int(max_val.sum()))

输出:

# max_val:
      hours
task       
1         7
2         6
3         5
4         2
5         6
# sum : 26

【讨论】:

我只需要最大值然后是它的总和 哦,对了!我更新了我的答案 谢谢是对的。但是如果没有(import pandas as pd)的另一种解决方案,因为我没有学习,并且可能因此而丢失标记。 @NoUce 所以你要求我们解决你的任务,你得到标记甚至没有尝试解决它? @PatrickArtner 是对的,我们愿意提供帮助,但只有在您想自学时才有意义。我们可以帮助您采用经典方法。尝试使用enumerate 循环遍历task 这可能会帮助您开始

以上是关于对列表中每个元素索引的最大值求和 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

对于 np.array 中的每个元素,找到具有相同元素值的最大索引 [关闭]

如何将每个值与列表对象中每个元素中的最大值相除

list 求和 平均值 最大值 ---reverse 源列表反转 ---sort 正序排序

给定列表的元素,如何在列表中恢复其索引?

在列表python中查找最小和最大元素的最后一个索引

python怎么将列表中元素分配成三份(无需连续),列举出所有的方案?