max*_*mus 4 python collections counter defaultdict
我有两个collections.defaultdict并试图从中删除d1也在d2.
from collections import Counter, defaultdict
d1 = Counter({'hi': 22, 'bye': 55, 'ok': 33})
d2 = Counter({'hi': 10, 'hello': 233, 'nvm': 96})
Run Code Online (Sandbox Code Playgroud)
理想结果:
d3 = set()
d3 = ({'bye':55, 'ok':33})
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试过:
d3 = set()
d3 = d1 - d2
print(d3)
Counter({'bye': 55, 'ok': 33, 'hi': 12})
Run Code Online (Sandbox Code Playgroud)
但这保持了相同的值,'hi'即使我想删除所有相似的值。
由于 和d1是d2对象Counter,它们实现的减法与集合不同。
来自
collections.Counter(强调我的):加法和减法通过添加或减去相应元素的计数来组合计数器。
返回一个新集合,其中包含该集合中不存在于其他集合中的元素。
也就是说,您可以像集合一样使用Counter.keys和使用。difference
keys = d1.keys() - d2.keys()
# keys = {'bye', 'ok'}
out = {k: d1[k] for k in keys}
# out = {'bye': 55, 'ok': 33}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |