【问题标题】:Find all array with second highest elements in a list查找列表中具有第二高元素的所有数组
【发布时间】:2021-12-27 04:52:24
【问题描述】:

假设我在 Python 3.2 中有一个数组列表,并且我想输出一个包含 每个 数组元素的数组,以及它们在列表中的索引位置,这些元素具有最高第二个元素。我怎样才能以最可扩展的方式实现这个目标(即,不必使用嵌套的 for-loop )?

输入

a = [[2,3], [1,4,5], [1,4,6,2], [3,3,5], [9,4]]

预期输出

res = [[[1,4,5], 1], [[1, 4, 6,2], 2], [[9,4], 4]]

有人可以帮助我在不使用嵌套for-loop 的情况下如何做到这一点吗?

【问题讨论】:

  • 你知道第二高的元素吗?即在这种情况下,你知道它的 4 吗?还是你必须寻找它?您的数组是否以任何方式排序?
  • 好问题。不幸的是,在这种情况下,您的第一个和第三个问题的答案是否定的。第二个问题的答案是肯定的。

标签: arrays python-3.x list


【解决方案1】:

你可以这样做:

b = max(a, key=lambda x:x[1])[1]  
[[j, i] for i, j in enumerate(a) if j[1]==b]
Out[6]: [[[1, 4, 5], 1], [[1, 4, 6, 2], 2], [[9, 4], 4]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2011-04-07
    • 2018-12-09
    • 1970-01-01
    相关资源
    最近更新 更多