python - 列表中重复次数最多的元素
问题描述
我正在尝试创建一个函数来查找列表中重复次数最多的元素。我想遍历列表,检查每个元素的计数并比较它们(使用 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)
解决方案
问题在于if list1.index(num) == 0
,它重置results
为 1,失去了先前的计数。将其删除并设置result
为列表中的第一项。为了减少迭代,您还应该迭代set
数字
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)
推荐阅读
- java - Spring Boot @Scheduled 是同步的还是异步的?
- java - 使用可序列化的 RealmObject 序列化整数数组
- rust - 如何避免线程恐慌导致的死锁?
- import - 版本 v8.0.0:SetImportUse()
- laravel - 如何使用 composer 为 laravel 安装依赖项?
- typo3 - 在 Typo3 中启用记录翻译
- javascript - Vanilla JavaScript 异步多个 xhr.open()
- java - Fork and Join:spring状态机中两个区域并行执行的问题
- html - 当我在 img 标签中使用类属性时,我看到边框也随之显示。如何消除边框
- symfony - Symfony - 如何使用默认值反序列化?