【问题标题】:Merge two arrays into a matrix in python and sort在python中将两个数组合并为一个矩阵并排序
【发布时间】:2011-09-17 09:20:51
【问题描述】:

好的,这是一个非常简单的问题,我在这里找不到解决方案;

我有两个列表 A 和 B

A=(0,1,2,3,...,N-1)  (N elements)
B=(-50,-30,-10,.....,-45) (N elements)

我想创建一个新结构,一种具有 2xN 元素的 2D 矩阵“C”,以便

C(0)=(0,-50)
C(1)=(1,-30)
...
C(N)=(N-1,-45)

我无法做到这一点,因为我没有看到构建此类矩阵的简单方法。

然后我想得到一个新矩阵“D”,其中来自 B 的所有元素都从高到低排序

D(0)=(0,-50)
D(1)=(N-1,-45)
D(2)=(1,-30)
...

我怎样才能做到这一点?

附:一旦我得到“D”,我怎么能像第一个字符串一样将它分成两个字符串 A2 和 B2?这样的

A2=(0,N-1,1,...)
B2=(-50,-45,-30,...)

【问题讨论】:

    标签: python arrays sorting matrix


    【解决方案1】:
    C = zip(A, B)
    D = sorted(C, key=lambda x: x[1])
    A2, B2 = zip(*D)
    

    或全部在一行:

    A2, B2 = zip(*sorted(zip(A,B), key=lambda x: x[1]))
    

    【讨论】:

    • 太棒了!最后一个问题,我怎样才能将新的“D”分成新的 A2 和 B2 ?
    • 第一次错过了最后一点,我已经编辑了我的答案以包含它。
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    相关资源
    最近更新 更多