您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用Python减去两个列表

用Python减去两个列表

Python 2.7和3.2添加collections.Counter该类,它是一个字典子类,可将元素映射到该元素的出现次数。可以用作多集。您可以执行以下操作:

from collections import Counter
a = Counter([0, 1, 2, 1, 0])
b = Counter([0, 1, 1])
c = a - b  # ignores items in b missing in a

print(list(c.elements()))  # -> [0, 2]

同样,如果您要检查其中的每个元素b都在中a

# a[key] returns 0 if key not in a, instead of raising an exception
assert all(a[key] >= b[key] for key in b)

但是由于您坚持使用2.5,因此可以尝试将其导入并定义自己的版本(如果失败)。这样,您将确保获得最新版本(如果有),如果没有,则回落到可用版本。如果将来将其转换为C实现,您还将从速度改进中受益。

try:
   from collections import Counter
except ImportError:
    class Counter(dict):
       ...

您可以在此处找到当前的Python源。

python 2022/1/1 18:39:09 有244人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶