找出列表中重复的元素:遍历列表并存储每个元素及出现的次数

通用解法的思想:

直接遍历列表,使用字典存储 每个元素以及出现的次数。(应该也适用于找出其他可迭代对象中的重复元素,如tuple,set,str)

可以设置返回value>1的键值对。

时间复杂度:O(n)/O(2n)

代码:python

def checkRepeat(s:list):
#遍历列表,存储每个元素及其出现次数
    dict1 = {}
    for i in s:
        if i not in dict1:
            dict1[i] = 1
        else:
            dict1[i] += 1
#设置新的字典存储value值>1的键值对
    dict2 = {}
    for k,v in dict1.items():
        if v>1:
            dict2[k] = v

    return dict2

if __name__=='__main__':
    s = [1,2,3,1,2,4,5]
    dict2 = checkRepeat([1,2,3,1,2,4,5])
    print(dict2)

输出结果

{1: 2, 2: 2}

上一篇:字典的循环遍历


下一篇:python数据结构----容器类型字典的基础语法