x = [1, 1, 2, 2, 3]
y = [1, 2]
z = [n for n in y if (n in x) and x.remove(n)] + x
print(z) # -> [1, 2, 3]
x = [1, 1, 1, 2]
y = [1]
z = [n for n in y if (n in x) and x.remove(n)] + x
print(z) # -> [1, 1, 2]
>>> from collections import Counter
>>> x = [1, 1, 2, 2, 3]
>>> y = [1, 2]
>>> [k for _ in range(v) for k,v in (Counter(x) - Counter(y)).iteritems()]
[1, 2, 3]
以下是我的看法:
您可以使用
collections.Counter
来查找每个列表中元素的计数。然后,您可以从结果中提取差异并重建一个列表。你知道吗缺点是,结果的顺序与输入列表的顺序没有真正的相关性。上面显示的结果看起来是排序的,这一事实依赖于实现,可能只是巧合。你知道吗
可能不是想象,首先想到的是。。你知道吗
相关问题 更多 >
编程相关推荐