Skip to main content
 首页 » 编程设计

python list之只保留正值或负值

2025年05月04日21del

在 Python 中,我有一个包含数千个数字(负数和正数)的列表。

我想要的是消除列表中出现的正数和负数。所以我只想保留列表中出现的数字,要么是正数,要么是负数。

示例:list = (1, 2, 3, -1, -2, -5, 6, 7, -6) 应该得到 (3, -5, 7 )。

谢谢!

请您参考如下方法:

您可以通过 set 使用散列来确保平均情况下的 O(n) 复杂度。

from operator import neg 
 
A = [1, 2, 3, -1, -2, -5, 6, 7, -6] 
A_set = set(A) 
exc = A_set & set(map(neg, A_set)) 
res = [i for i in A if i not in exc] 
 
# [3, -5, 7]