How to sort 2d array by row in python?

前端 未结 5 1758
猫巷女王i
猫巷女王i 2020-12-03 07:41

I have 2d array, dimension 3x10, and I want to sort by values in 2nd row, from lowest to highest value.

5条回答
  •  心在旅途
    2020-12-03 08:31

    How does your "2D array" look like?

    For example:

    >>> a = [
         [12, 18, 6, 3], 
         [ 4,  3, 1, 2], 
         [15,  8, 9, 6]
    ]
    >>> a.sort(key=lambda x: x[1])
    >>> a
    [[4,  3,  1, 2], 
     [15, 8,  9, 6], 
     [12, 18, 6, 3]]
    

    But I guess you want something like this:

    >>> a = [
         [12, 18, 6, 3], 
         [ 4,  3, 1, 2], 
         [15,  8, 9, 6]
    ]
    >>> a = zip(*a)
    >>> a.sort(key=lambda x: x[1])
    >>> a
    [(6,  1,  9), 
     (3,  2,  6), 
     (18, 3,  8), 
     (12, 4, 15)]
    >>> a = zip(*a)
    >>> a
    [(6, 3, 18, 12), 
     (1, 2,  3,  4), 
     (9, 6,  8, 15)
    ]
    

提交回复
热议问题