Я пытаюсь сделать список из 11 элементовПолучить топ-6 элементов, при условии, что элемент> = 3
Я хочу, чтобы вытолкнуть максимальный элемент только из l[0]
в l[5]
. в одном из двух условий:
l[5] >= 3
или l[5]
больше не существует или None
.
l = [2,8,6,2,8,7,9,8,6,7,4]
max = 0
maxIndex = 0
while (l[5] >= 3 or l[5] is None):
for x in range(6):
if l[x] > max:
max = l[x]
maxIndex = x
l.pop(maxIndex)
print(l)
Я получаю сообщение об ошибке:
IndexError: list index out of range
Я знаю, в какой-то момент l[5]
больше не будет существовать, но как я могу создать этот код.
Добавить условие в то время как заявление, которое должно идти первым. Это должно быть: len (l)> 5' – sshashank124
Ваша функция довольно сложная; все, что вам действительно нужно, это ['heapq.nsmallest()'] (https://docs.python.org/2/library/heapq.html#heapq.nsmallest) здесь. –
Вы хотите, чтобы ** top-n (здесь, n = 6), при условии, что x> = 3 **. Как сказал @MartijnPieters, не начинайте с списка в первую очередь, используйте структуру сортировки данных, подобную 'heapq' – smci