在 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]
