python - 如何在 Python 中检查列表(或数组)上的条件,然后根据该条件对元素进行排序

标签 python arrays list sorting complex-numbers

我有一个包含 n 个元素的复数列表,我想检查有多少元素是实数(虚部为零),然后以以实数开头的方式对列表进行排序。

例如下面的列表:

a = [ 7 + 0j, -2 + 3j, -2 - 3j, 5 + 6j, 5 - 6j, -1+ 0j, -8 + 4j, -8 - 4j]

两个元素是实数(第一个元素和第六个元素)我想知道我的列表中有 2 个实数元素,然后我想要进行如下所示的排序,以实数开头,其他元素保持不变:

b = [ 7 + 0j, -1+ 0j, -2 + 3j, -2 - 3j, 5 + 6j, 5 - 6j, -8 + 4j, -8 - 4j]

我怎样才能做到这一点? 谢谢

最佳答案

Python有一个sorted带有 key 参数的函数。

The value of the key parameter should be a function that takes a single argument and returns a key to use for sorting purposes.

您可以根据 lambda 函数进行排序,该函数检查是否存在非零虚部。

a = [ 7 + 0j, -2 + 3j, -2 - 3j, 5 + 6j, 5 - 6j, -1+ 0j, -8 + 4j, -8 - 4j]
sorted(a, key = lambda x: x.imag != 0) 
#Output: [(7+0j), (-1+0j), (-2+3j), (-2-3j), (5+6j), (5-6j), (-8+4j), (-8-4j)]

关于python - 如何在 Python 中检查列表(或数组)上的条件,然后根据该条件对元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54446685/

相关文章:

c - 如何在 gtk+ 中创建按钮数组

java - 拆分字符串时 ArrayIndexOutOfBounds

python - 对 Pandas 数据框中的一列求和,其中一列满足条件,但由另一列分组

javascript - 使用 jquery 检查数组中的值是否有分割元素

r - 在列表中查找对象的位置编号

java: 将 DynaBean (apache-commons-beanutils) 转换为 List

Python索引函数查询

python - 如何通过 Airflow 中的 XComs 将参数从 PythonOperator 传递到 HttpSensor?

python - 从列表元组中正确赋值

python - 为什么我需要创建 `QApplication` 的对象,它在 PyQt GUI 编程中的目的是什么?