@VadimTolk

Как реализовать функцию удаления элементов списка и их изменения в Python3?

Заранее прошу задачу не решать!
Есть вот такая задача:
Напишите функцию modify_list(l), которая принимает на вход список целых чисел, удаляет из него все нечётные значения, а чётные нацело делит на два. Функция не должна ничего возвращать, требуется только изменение переданного списка, например:
lst = [1, 2, 3, 4, 5, 6]
print(modify_list(lst))  # None
print(lst)               # [1, 2, 3]
modify_list(lst)
print(lst)               # [1]

lst = [10, 5, 8, 3]
modify_list(lst)
print(lst)               # [5, 4]


вот я и думаю сперва необходимо реализовать удаление не чётных значений из списка через условие "если", а все остальные разделить на 2. Но моя функция не работает. Вопрос: почему?
def modify_list(l):
	for x in range (-1, -len(l)-1, -1):
		if l[x] % 2 > 0:
			l.pop(x)
  • Вопрос задан
  • 4643 просмотра
Пригласить эксперта
Ответы на вопрос 2
@d0ale3lfnd
1) Вы ничего не делите.
2) l[x] % 2 возвращает либо 1, либо 0.
моя реализация
def modify_list(lst):
    for x in range(len(lst)-1,-1,-1):
        if lst[x] % 2:lst.pop(x);continue
        lst[x] /=2
    return lst

Ответ написан
@kashapovin
I started learning python in April 2022
def modify_list(l):
le = len(l)-1
i = le
while i!=-1:
if l[i]%2:
del l[i]
else:
l[i]=l[i]//2
i -=1
return
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы