Age*_*2.0 -1 python list python-3.x
我想删除 l1 中 l2 中的元素,同时保留重复项。
输入:
l1 = [a, b, b, a, c, c, a]
l2 = [c, b]
Run Code Online (Sandbox Code Playgroud)
输出:
l3 = [a, b, a, c, a]
Run Code Online (Sandbox Code Playgroud)
我试图为此找到一个很好的答案,但我似乎找到的只是这样做的方法,它也删除了重复项。首先,我尝试使用 set() 执行此操作,直到我意识到它会删除重复项,然后我尝试使用 numpy 和 setdiff1d 但无法使其正常工作。使用列表理解,如
[item for item in x if item not in y]
Run Code Online (Sandbox Code Playgroud)
还删除了重复项。从列表中删除另一个列表中的元素而不删除重复项的最简单方法是什么?列表的顺序并不重要。
只需使用Counter:
from collections import Counter
l1 = ["a", "b", "b", "a", "c", "c", "a"]
l2 = ["c", "b"]
print(list((Counter(l1)-Counter(l2)).elements()))
Run Code Online (Sandbox Code Playgroud)
结果:
['a', 'a', 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |