在不知道有多少元素的情况下,在多维列表中查找最大值

时间:2017-11-08 15:38:34

标签: python python-3.x

我正在为学校的课程开发一些代码,但我的想法要求我在一些不同的数组中找到最大值。这似乎很容易,但主要问题是我不知道列表中有多少元素,因为我的列表包含每次用户完成测验时的结果。例如,如果我的列表包含:

main_list=[["Name1",[21,22,25]],
          ["name2",[26,21,24]],
          ["name3",[29,21,24]]]

每次执行主程序时,它都会在列表中添加另一个元素。因此,如果它再次被执行,我的列表将成为:

main_list=[["Name1",[21,22,25]],
          ["name2",[26,21]],
          ["name3",[29,21,24]],
          ["name4",[21]]]

所以你看,我将无法看到有多少元素。然而,我需要在二维列表(main_list[0][1] + main_list[1][1] + main_list[2][1] etc.)中加上第二个元素,并在其中找到最大的价值。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

你可以在不知道它的大小的情况下遍历数组并创建一个代表每个名字及其最大值的字典。

main_list=[["Name1",[21,22,25]],
          ["name2",[26,21,24]],
          ["name3",[29,21,24]]]


res = {sub_list[0]: max(sub_list[1]) for sub_list in main_list}

print (res)
>>> {'Name1': 25, 'name2': 26, 'name3': 29}

print (max(res.values()))
>>> 29