如何对一个由复数组成的二维数组根据第一维的实部进行排序?

3
我有一个简单的排序问题。我有一个二维数组,里面包含像这样的复数。
[[(-110.61040004379576-17.354473737234287j), (634.2701711342786+20.835585013392976j)],
 [(-56.513088619798417+19.304564206160592j), (139.27388305766863+22.035225424174627j)], 
 [(-56.107824445301581-15.926033069760162j), (139.59169287146287+21.499544204724476j)], 
 [(45.747228005094165-13.96425461096984j), (92.707153363055141-12.92524051712571j)], 
 [(-111.22348501455198-15.926033038872692j), (84.47603226469721+21.499544215863018j)], 
 [(45.747228023236914-13.964254617324347j), (92.707153338674217-12.925240518653737j)], 
 [(-56.107824379236632-15.926033025484159j), (139.59169284624946+21.499544241697734j)], 
 [(-111.62498538487328-18.53021375196538j), (138.66271112979905+18.818585903566003j)], 
 [(-56.107824363639025-15.926033025268273j), (139.59169284605719+21.499544250473367j)], 
 [(45.747228053266504-13.964254607367101j), (92.707153308435764-12.925240545154857j)]]

我想按照第一个复数的实部对它进行排序。我尝试了.sort(key=lambda x: x[0].real),但它返回了None。有什么好的建议吗?谢谢帮助。
1个回答

6
您得到了 None,因为 sort 方法不返回任何内容,但是会在原地对列表进行排序。因此,如果您想创建一个单独的已排序列表,可以使用sorted函数,例如:sorted(l, key=lambda x: x[0].real)。或者,在调用sort方法后,您可以使用已经排序好的列表。

@RolandGuichard 如果这个答案解决了您的问题,您可以接受它。 - Karlo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接