开发者社区> 问答> 正文

列表中很多重复的元素

我正在尝试创建一个在列表中找到最重复元素的函数。我想遍历列表,检查每个元素的计数并进行比较(使用2个变量numnumnumnum2

出了点问题,它总是打印6。

l1 = [1, 5, 7, 7, 7, 7, 7, 7, 7, 7, 1, 3, 6, 6, 3, 4, 2, 6]

print(l1)


def mostrepeating(list1=None):
    if list1 is None:
        print('No list was received in the function.')
    else:
        numnum, numnum2, result = 0, 0, 0
        for num in list1:
            if list1.index(num) == 0:
                numnum = list1.count(num)
                result = num
            else:
                numnum2 = list1.count(num)
                if numnum2 > numnum:
                    result = num
                    numnum = numnum2
        print(result)


mostrepeating(l1)

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 23:28:46 573 0
1 条回答
写回答
取消 提交回答
  • 问题在于if list1.index(num)== 0,它将results重置为1,失去了先前的计数。删除它,并将result设置为列表中的第一项。为了减少迭代,您还应该迭代数字的“设置”

    def mostrepeating(list1=None):
        if list1 is None:
            print('No list was received in the function.')
        else:
            numnum, numnum2, result = 0, 0, 0
            s = set(l1)
            result = list1[0]
            for num in s:
                numnum2 = list1.count(num)
                if numnum2 > numnum:
                    result = num
                    numnum = numnum2
            print(result)
    

    回答来源:stackoverflow

    2020-03-24 23:28:54
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载