Обновление вывода функции, которая принимает изменение списка в качестве вводаPython

Программы на Python
Anonymous
 Обновление вывода функции, которая принимает изменение списка в качестве ввода

Сообщение Anonymous »

У меня есть функция, называемая max_list , которая возвращает наибольшее число в случайно сгенерированном списке (я знаю, что существует встроенная функция, это только для практики)

Код: Выделить всё

import random
L = []
rang = 100 #number size limit
r = 10 #size of list

for i in range(r):
L.append(random.randint(0, rang))

def max_list(L):
max_in_list = L[0]
for j in range(len(L)):
if max_in_list == rang:         #if max_in_list is the highest it can be it must be the maximum
return max_in_list
elif L[j] > max_in_list:      #if tere is a value greater than max_in_list it becomes the new max_in_list
max_in_list = L[j]
if j+1 == r:
return max_in_list
elif j+1 == r:      #if it reaches the end of the list it must be the largest
return max_in_list
< /code>
Моя проблема возникает при попытке удалить самый большой элемент в списке один за другим (идея состоит в том, чтобы также добавить его в новый список), например, в списке LS = [1 , 2, 3] 
он должен сначала удалить 3, затем 2 и так далее

Код: Выделить всё

for k in range(len(L)):
L.remove(max_list(L))
Дело в том, что, по -видимому, в списке не обновляется, а max_list (l) остается фиксированным, поэтому на второй итерации он не добавит ни одного ( Поскольку он был удален в первой итерации) и приводит к ошибке: L.Remove (max_list (l)) valueError: list.remove (x): x Не в списке
с примером, который я дал раньше (

Код: Выделить всё

ls = [1, 2, 3]
), он удалит 3, но на второй итерации он попытается удалить 3 вместо 2 (что будет новым максимальным), что приведет к ошибке
Когда Использование функции встроенного max () , кажется, работает, поэтому я думаю, что с функцией что -то не так.

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-an-input

Вернуться в «Python»