统计列表中元素出现的个数

统计列表中元素出现的个数

应用案例

现有一个数字列表,需计算列表中出现次数大于列表长度一半的数字,找到一个后即可返回;(当列表个数是奇数时,列表元素个数向上取整)。

思路分析

上述题目核心点在于统计列表中的元素个数,解题方法是创建一个字典,字典键是元素,字典键对应的值是该元素出现的个数,当在遍历的过程中字典某个键的值大于列表长度一半时,返回相应字典的键即可。

代码实现

def MorelistLength(numbers):
    num_len = len(numbers) // 2
    d = {}
    max = 0

    for i in numbers:
        #当前字典d中没有i键时,插入元素
        if d.get(i) is None:
            d[i] = 1
        #当前字典d中有i键时,元素个数+1
        else:
            d[i] += 1
            
        if d[i] > max:
            max = d[i]
            
        if max > num_len:
            return i
    return None
print(MorelistLength([1,1,1,1,1,3,3,3,3,3,1,1]))

上述代码的执行结果如下:

1

案例推广

同样,该案例也可推广至其它类型的列表中,如下:

print(MorelistLength(['da','na','da','sa','da','da']))

执行结果如下:
da

print(MorelistLength([2,'na',2,'sa',2,2]))
执行结果如下:
2
发布了21 篇原创文章 · 获赞 6 · 访问量 7981

猜你喜欢

转载自blog.csdn.net/weixin_42128329/article/details/104628325