【发布时间】:2018-08-25 21:21:13
【问题描述】:
我正在尝试在列表中找到“3 个最大的第一个数字”及其索引。
我有一个编号为0 到10 的列表。
numbers=[3,5,2,3,3,5,6,2,1,2,3,4,5,6,7]
有了这个数字:
2号出现:5次
3号出现:4次
4号出现:3次
我有一个计算数字百分比的列表
numbersInPercentage=[(100/len(numbers))*(numbers).count(0),
(100/len(numbers))*(numbers).count(1),
...
(100/len(numbers))*(numbers).count(10)]
我的算法(代码块)用于查找 3 个最大数字
#first biggest
largest_integer = max(numbersInPercentage)
index = numbersInPercentage.index(max(numbersInPercentage))
print('Number is :', index," by ",largest_integer,"%")
numbersInPercentage.remove(largest_integer) # this part killing me
#second biggest
second_largest_integer = max(numbersInPercentage)
index = numbersInPercentage.index(max(numbersInPercentage))
print('Number is :', index," by ",second_largest_integer,"%")
numbersInPercentage.remove(second_largest_integer) # this part killing me
#thirdbiggest
third_largest_integer = max(numbersInPercentage)
index = numbersInPercentage.index(max(numbersInPercentage))
print('Number is :', index," by ",third_largest_integer,"%")
numbersInPercentage.remove(third_largest_integer) # this part killing me
输出如下:
数字是:2 x 25.0 %
数字是:2 x 20.0 %
数字是:2 x 15.0 %
这部分代码删除那个索引,所以我当前的索引一个一个递减。
numbersInPercentage.remove(largest_integer)
应该是这样的:
数字是:2 x 25.0 %
数字是:3 x 20.0 %
数字是:4 x 15.0 %
我的代码很好地找到了当前索引中最大的数字,除了删除索引方法会杀死我。
我需要分配其他删除索引的东西,或者我必须删除没有索引值的东西。
【问题讨论】: