从两个Python列表获取无序唯一元素

10 浏览
0 Comments

从两个Python列表获取无序唯一元素

这个问题已经有了答案

获取两个具有唯一条目的列表之间的差异

如果我有两个列表(长度可能不同):

x = [1,2,3,4]
f = [1,11,22,33,44,3,4]
result = > [11, 22, 33, 44]

执行:

for element in x:
    if element in f:
        f.remove(element)

得到:

result = [11,22,33,44,4]

set 方法返回有序集合,但我需要保持元素顺序。

有更好的方法吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

如何处理set操作?这将生成一个排序的列表,与提供的顺序无关:

>>> x = [1,2,3,4]
>>> f = [1,11,22,33,44,3,4]
>>> sorted(set(f) - set(x))
[11, 22, 33, 44]

0
0 Comments

在迭代列表时编辑它是不好的做法,但这里有一个列表理解可以做到你想要的。这也将保持顺序。

>>> x = [1,2,3,4]
>>> f = [1,11,22,33,44,3,4]
>>> [a for a in f if a not in set(x)]
[11, 22, 33, 44]

0