假设我有两个列表,每个列表包含 100,000 个元素,我想找到集差但保持元素的顺序。示例:
A = [10, 1, 30, 4, 5, 6]
B = [4, 1, 100]
期望输出:
AB = [10, 30, 5, 6]
set(A).difference(set(B))
正在生成 [10, 5, 6, 30]
(注意它如何不保留 A
中的顺序)并且列表理解需要一些时间(我认为这是因为 {{1} } 运算符).
答案 0 :(得分:0)
获得集合差值后,可以将其与原始列表顺序进行比较,然后相应地保存结果
A = [10, 1, 30, 4, 5, 6]
B = [4, 1, 100]
C = set(A).difference(set(B))
result = [item for item in A if item in C]
输出
[10, 30, 5, 6]
答案 1 :(得分:0)
使用列表推导式
A = [x for x in A if x not in B]