【问题标题】: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的结果求和

标签: python python-3.x list function


【解决方案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 这可能会帮助您开始
猜你喜欢
  • 2022-01-22
  • 2018-09-17
  • 2016-07-14
  • 2019-08-31
  • 2019-09-19
  • 2018-07-09
  • 2021-01-16
  • 2013-01-11
  • 1970-01-01
相关资源
最近更新 更多