我有两个列表,如下所示:
a = [1, 2, 2, 2, 3]
b = [2, 5, 6]
经过合并后,我应该得到类似于下面这样的结果(不考虑顺序):
c = [1, 2, 2, 2, 3, 5, 6]
最终列表应仅包含公共元素一次,并且应复制其余元素(来自两个列表)。无法使用集合进行此操作,因为它们会从列表中删除多个出现的元素,这不是一个联合。有什么Pythonic的方法可以做到这一点?
a = [1, 2, 2, 2, 3]
b = [2, 5, 6]
经过合并后,我应该得到类似于下面这样的结果(不考虑顺序):
c = [1, 2, 2, 2, 3, 5, 6]
最终列表应仅包含公共元素一次,并且应复制其余元素(来自两个列表)。无法使用集合进行此操作,因为它们会从列表中删除多个出现的元素,这不是一个联合。有什么Pythonic的方法可以做到这一点?
2
,并包括3
。我真的不确定你在尝试做什么;也许你需要重新考虑你的问题。否则,使用itertools.Counter()
对象:c = list((Counter(a) + Counter(b)).elements())
(或者一直坚持使用Counter()
对象)。 - Martijn Pieters