加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 至少冻结x个元素

发布时间:2020-12-20 13:00:10 所属栏目:Python 来源:网络整理
导读:我目前有这个代码,它检查数组中的所有元素是否相同.如果是这种情况,请返回true def all_equal(lst): """ all_equal([1,1,1]) True all_equal([1,2,3,1]) False """ return len(frozenset(lst)) == 1 但我想要检查的是,是否至少有5个相同的元素. 以便 [1,2]
我目前有这个代码,它检查数组中的所有元素是否相同.如果是这种情况,请返回true

def all_equal(lst):
  """
  >>> all_equal([1,1,1])
  True
  >>> all_equal([1,2,3,1])
  False
  """
  return len(frozenset(lst)) == 1

但我想要检查的是,是否至少有5个相同的元素.

以便

[1,2]

将返回True以及.因为有5次1

解决方法

使用 bag or multiset type而不是使用集合.多重集合计算唯一值出现的次数.

在Python中,这是collections.Counter() object:

from collections import Counter

def all_equal(lst):
    bag = Counter(lst)
    if any(v >= 5 for v in bag.itervalues()):
        # an element occurred at least 5 times
        # (use bag.values() if using Python 3)
        return True
    return False

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读