在python中将两个数组合并成一个矩阵并排序

发布于 2024-11-16 03:05:32 字数 568 浏览 1 评论 0原文

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

我有两个列表 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)
...

我怎样才能实现这一点?

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

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

Ok, this is a very easy question for which I could not find the solution here;

I have two lists A and B

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

I would like to create a new structure, kind of a 2D matrix "C" with 2xN elements so that

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

I could not get to this since I do not see an easy way to build such matrices.

Then I would like to get a new matrix "D" where all the elements coming from B are sorted from highest to lowest such

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

How could I achieve this?

P.S. Once I get "D" how could I separate it into two strings A2 and B2 like the first ones? Such

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听不够的曲调 2024-11-23 03:05:32
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]))
C = zip(A, B)
D = sorted(C, key=lambda x: x[1])
A2, B2 = zip(*D)

Or all on one line:

A2, B2 = zip(*sorted(zip(A,B), key=lambda x: x[1]))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文