在python中添加多集列表

2024-06-16 13:03:32 发布

您现在位置:Python中文网/ 问答频道 /正文

multiset列表合并为单个多集的Python方式是什么

比如说,

from multiset import Multiset

set1 = Multiset('aab')
set2 = Multiset('abc')
ls = [set1, set2]

基于使用set的我的猜测是:

Multiset.add(*ls)

这会产生一个错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/site-packages/multiset.py", line 931, in add
self._elements[element] += multiplicity
TypeError: unhashable type: 'Multiset'

有没有比下面的for循环更好的方法

def add_multisets(ls):
    result = Multiset()
    for i in ls:
        result += i
    return result

>>> add_multisets(ls)
Multiset({'a': 3, 'b': 2, 'c': 1})

Tags: infromadd列表for方式lineresult
1条回答
网友
1楼 · 发布于 2024-06-16 13:03:32

您可以使用Multiset.combine(*ls) i、 e

from multiset import Multiset
set1 = Multiset('aab')
set2 = Multiset('abc')
ls = [set1, set2]
x = Multiset.combine(*ls)
print(x)  # Multiset({'a': 3, 'b': 2, 'c': 2})

相关问题 更多 >