Python“设置”有重复/重复的元素

发布于 2021-01-29 15:14:46

有没有一种标准的方法来表示可以包含重复元素的“集合”。

据我了解,一个集合恰好具有一个元素的零个或零个。我希望功能有任何数量。

我目前使用的字典是元素作为键,数量作为值的字典,但是由于许多原因,这似乎是错误的。

动机: 我相信此类收藏有很多应用。例如,对喜欢的颜色的调查可以表示为:survey = [‘blue’,’red’,’blue’,’green’]

在这里,我不在乎订单,但在乎数量。我想做这样的事情:

survey.add('blue')
# would give survey == ['blue', 'red', 'blue', 'green', 'blue']

…甚至

survey.remove('blue')
# would give survey == ['blue', 'red', 'green']

注意: 是的,集合不是此类集合的正确术语。还有更正确的吗?

当然可以使用一个列表,但是所需的集合是无序的。更不用说对我来说,为集合命名的方法似乎更合适。

关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您正在寻找一个多重集

    Python最接近的数据类型是collections.Counter

    ACounterdict用于计数可哈希对象的子类。它是一个无序集合,其中元素存储为字典键,其计数存储为字典值。计数可以是任何整数值,包括零或负计数。
    Counter班是类似于其他语言包或者多集。

    对于多集的实际实现,请使用bagpypi上data-structures包中的类。请注意,这仅适用于Python 3。如果您需要Python
    2,bag为Python 2.4编写的食谱。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看