【问题标题】:Finding the minimum and maximum of a list of arrays查找数组列表的最小值和最大值
【发布时间】:2015-09-29 06:06:53
【问题描述】:

假设我在一个数组中有 2 个数组,例如:

main_array = [[1, 2, 3, 4], [4, 5, 6, 7]]

我想找到每个数组的minmax 并将它们存储在一个数组中。对于上述情况,它将是:

result = [1, 4, 4, 7]

在这种情况下,如何使用 Python 的内置 min()max()

我试过 min(main_array)max(main_array) 但这给了我:

result = [1,7]

【问题讨论】:

标签: python arrays max min


【解决方案1】:

您可以在单个列表中使用min()max() 来获取它的最小值/最大值。您还可以使用列表推导来遍历列表中的列表和要使用的函数:

main_array = [[1,2,3,4], [4,5,6,7]]    
res = [func(l) for l in main_array for func in (min, max)]    
print(res)

【讨论】:

    【解决方案2】:
    main_array = [[1, 2, 3, 4], [4, 5, 6, 7]]
    result = []
    
    for inner_list in main_array:
        result.append(min(inner_list))
        result.append(max(inner_list))
    

    【讨论】:

      【解决方案3】:

      可能更易读的方法是:

      result = []
      for list in main_array:
          result.append(min(list))
          result.append(max(list))
      
      print(result)
      

      【讨论】:

        【解决方案4】:

        试试

        main_array = [[1,2,3,4],[4,5,6,7]]
        
        out = []
        for arr in main_array:
            out.extend([min(arr), max(arr)])
        
        print(out)
        

        您需要遍历每个子数组并调用minmax

        你也可以使用生成器

        def minthenmax(arr):
            for i in arr:
                yield min(i)
                yield max(i)
        
        print(list(minthenmax(main_array)))
        

        【讨论】:

          【解决方案5】:

          首先,您在主数组的定义中缺少一个共同点...

           main_array = [[1,2,3,4],[4,5,6,7]]
          

          获取第一个子数组的最小值。

          min(main_array[0])
          

          ...和最大...

          max(main_array[0])
          

          希望你能从中解决剩下的问题。

          【讨论】:

            【解决方案6】:

            在一行中。您可以使用内置 map 函数将两个内部列表映射到 min 函数,然后映射到 max 函数。最后,您可以将它们连接起来。

            map(min, main_array) + map(max, main_array)

            【讨论】:

              【解决方案7】:
              main_array = [[1,2,3,4],[4,5,6,7]]
              x = min(main_array[0]), max(main_array[0])
              y = min(main_array[1]), max(main_array[1])
              new_array = [i for i in x + y]
              print (new_array)
              

              输出:

              [1, 4, 4, 7]
              

              【讨论】:

                【解决方案8】:

                您必须在 lst 的每个项目上搜索 min 和 max。
                lst = [[1,2,3,4],[4,5,6,7]]
                m = []
                对于 lst 中的 k:m.append([min(k), max(k)])
                => [[1, 4], [4, 7]]

                【讨论】:

                • 请解释 OP 的代码有什么问题以及为什么通过编辑您的答案来解决问题。
                猜你喜欢
                • 2021-09-15
                • 2016-06-06
                • 2015-01-16
                • 2018-05-03
                • 2014-06-11
                • 1970-01-01
                • 1970-01-01
                • 2017-09-19
                相关资源
                最近更新 更多