我试图创建一个函数,在列表中查找重复次数最多的元素。我想遍历列表,检查每个元素的计数并比较它们(使用2个变量numnum
和numnum2
)
出了点问题,它总是打印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)
您还可以使用collections模块中的Counter class
问题在于
if list1.index(num) == 0
,它将results
重置为1,从而丢失了以前的计数。删除它并将result
设置为列表中的第一项。为了减少迭代次数,您还应该迭代set
个数字相关问题 更多 >
编程相关推荐