我正在尝试利用Python中的单个for
循环来
检查list
中最大的数字,然后打印找到的索引
计算list
中该最大数字的出现频率。
for index in range(1, listLength):
if numbersList[index] > numbersList[largest]:
largest = index
我已经完成了第1部分,但是我不确定如何在相同的for循环中搜索它的频率。
感谢您的帮助。
答案 0 :(得分:1)
您完全不必使用循环即可实现此目的。对列表进行排序,并在最后一个索引处找到数字,然后使用count(number)来获取出现的次数。
numbers = [1, 3, 4, 2, 3, 4, 5]
numbers.sort()
print(numbers)
[1, 2, 3, 3, 4, 4, 5]
list.count(数字)
[1, 2, 3, 3, 4, 4, 5].count(5)
1
或者您可以使用导入以下内容
from collections import Counter
Counter(list)
将以字典格式为您提供输出计数。
Counter({'1': 1, '2': 1, '3': 2, '4': 2, '5': 1})
答案 1 :(得分:0)
有内置方法可以做到这些。
In [110]: lst = [1,2,4,5,66,7,7,4,66,78,1]
In [111]: max(lst)
Out[111]: 78
1。检查列表中最大的数字,然后打印找到的索引,
In [112]: print lst.index(max(lst))
Out[112]: 9
2。计算列表中该最大数字的出现频率。
In [113]: print lst.count(max(lst))
Out[113]: 1
答案 2 :(得分:0)
如果不允许使用内置函数,请使用整数,例如Count
。这代表数量最多的频率。遍历该数组,然后找到新的最大数集largest = index
和counter = 0.
,添加一个条件,如果当前数等于您保存的最大数,则将count
加1
答案 3 :(得分:0)
如果您不想使用任何库,则可以使用以下代码来实现:
counter = 1
for index in range(listLength):
if index == 0:
largest = 0
if numbersList[index] == numbersList[largest]:
counter += 1
elif numbersList[index] > numbersList[largest]:
counter = 1
largest = index
答案 4 :(得分:0)
解决这个问题的方法很少
a = [1, 9, 3, 7, 5, 9, 7, 4, 9, 5] # test_data
max()
和count
largest = max(a)
print(largest) # 9
print(a.count(largest)) # 3
通常,上面是获取列表中最大数量和计数元素的最常见且广泛使用的方法。
max()
和Counter
from collections import Counter
c = Counter(a)
print(c[max(a)]) # 3
Counter
来自collections
,它支持各种方法。有关更多信息,请访问以下网站:https://data-flair.training/blogs/python-counter/