Python удаление элементов из массива
Здорова юные линуксойды! У меня такая задача нужно все четные элементы массива удалить. вот код:
for i in range(len(a)):#a-- это массив if a[i]%2==0: a.remove(a[i]) #он выводит list index out of range. Думаю это связано с удалением элемента из списка. Кто знает решение плиз помогите
levon12341
20.10.16 09:51:23 MSK

умаю это связано с удалением элемента из
эмм, напомни, в чем помощь нужна ? Очевидно что это связано с удалением. Потому что он идет по длине изначального списка (не массива, кстати), по списку который становится короче.
рекомендую просто генерировать новый. Например так
a = [x for x in a if x%2!=0]
Dred ★★★★★
( 20.10.16 09:57:56 MSK )
Это происходит от того, что после удаления элемента массива его длина и индексы элементов ВНЕЗАПНО меняются, а предел цикла — нет.
Условие
Выведите все четные элементы списка. При этом используйте цикл for , перебирающий элементы списка, а не их индексы!
Решение
s=input() a=[int(s) for s in s.split()] for i in a: if int(i)%2 == 0: print(i, end=' ')
Комментарии
Аноним :
Немного проще:
a = input().split()
for i in range(0, len(a)):
if int(a[i]) % 2 == 0:
print(a[i], end=’ ‘)
Аноним :
В задании сказано, что нужно использовать перебор списка а не индекса
Виктор :
Странно, в условии сказано — перебирайте элементы, а не индексы, а в решении автор перебирает все-таки индексы! Да и решение неправильное в целом, сказано же — четные элементы, а вовсе не элементы с четными номерами. Скажем, из строки исходных данных «1 2 3 4 10 11 13 17 19» эта программа выберет числа 1,3,10,13,17,19, а по смыслу задачи это должно быть 2,4,10.
Вот как надо:
ar = [int(s) for s in input().split()]
print(*[k for k in ar if k %2 ==0])
Добавить комментарий Отменить ответ
ЕГЭ на соточку для чайников
Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене
Как удалить нечетные элементы из списка python
Дан список из чисел и индекс элемента в списке k. Удалите из списка элемент с индексом k, сдвинув влево все элементы, стоящие правее элемента с индексом k.
Программа получает на вход список, затем число k . Программа сдвигает все элементы, а после этого удаляет последний элемент списка при помощи метода pop() без параметров.
Программа должна осуществлять сдвиг непосредственно в списке, а не делать это при выводе элементов. Также нельзя использовать дополнительный список. Также не следует использовать метод pop(k) с параметром.
Во всех задачах считывайте входные данные через input() и выводите ответ через print() .
Войти или зарегистрироваться, чтобы отправлять решения на проверку
Тесты
7 6 5 4 3 2 1 2
7 6 4 3 2 1
4 6 2 4 3 5 12 24 3 5 4
4 6 2 4 5 12 24 3 5
4 6 2 4 3 5 12 24 3 5 0
6 2 4 3 5 12 24 3 5
4 6 2 4 3 5 12 24 3 5 8
4 6 2 4 3 5 12 24 5
4 6 2 4 3 5 12 24 3 5 9
4 6 2 4 3 5 12 24 3
Удалить из списка все нечетные значения, а четные разделить на 2
Есть список a = [1, 2, 3, 4, 5, 6]. Требуется удалить из этого списка все нечетные значения, а четные разделить на 2. Всю операции производить с текущим списком, второй список создавать нельзя. Вывести измененный список в консоль.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Удалить из списка все нечётные значения, а чётные нацело разделить на два
Доброго времени суток. Был бы рад небольшой помощи. Я начал изучать питон и передо мной поставили.

Функция: удалить из списка все нечётные значения, а чётные нацело поделить на два
Напишите функцию modify_list(l), которая принимает на вход список целых чисел, удаляет из него все.
Записать элементы списка в новый список сначала все четные значения элементов, а потом нечетные
Ввести с клавиатуры список, содержащий 10 элементов и записать в новый список сначала все четные.
2421 / 1463 / 633
Регистрация: 01.11.2021
Сообщений: 2,269

Сообщение было отмечено D1m0nd как решение
Решение
1 2 3 4 5 6 7
a = [1, 2, 3, 4, 5, 6] for i in range(len(a)-1, -1, -1): if a[i] % 2: a.pop(i) elif not a[i] % 2: a[i] = a[i] // 2 print(a)
702 / 348 / 104
Регистрация: 09.02.2018
Сообщений: 789
Сообщение от Alexarh 
elif not a[i] % 2
Нельзя разве просто else?
4751 / 2643 / 547
Регистрация: 07.11.2019
Сообщений: 4,359
1 2 3 4 5 6
a = [11, 22, 34, 45, 57, 6] for i in range(len(a)): x=a.pop(0) if not x%2: a.append(x//2) print(*a)
2421 / 1463 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
Сообщение от КулХацкеръ 
Нельзя разве просто else?
Можно и нужно.
Я осваиваю только по-тихоньку, для себя. Поэтому часто и ошибаюсь, и недочеты делаю, и исправления вношу.
Регистрация: 25.11.2022
Сообщений: 1
Минут 5 пытался понять почему работает «if not x%2» и понял
Но если кто-то тоже не сразу въедет проще переформулировать это как — ‘Если не нечетное’
Ну а если это умножить на -1 так сказать, то получится ‘Если четное’
Хотя я до сих пор точно не понимаю почему это работает(если кто-то сможет простым языком объяснить, буду благодарен)
А и еще момент, ( да я разжевываю, мало ли кто не въдет хз, не хотите-не читайте) так вот, после «x=a.pop(0)» у нас из списка элемент с индексом 0 уже ушел, просто x принял его значение
Добавлено через 20 минут
Я так и не понял почему работает «if not x%2», ведь по логике такой результат должен получится от If x%2, но имеем, что имеем, однако я нашел более понятное мозгу решение
if (z%2)==0
вот, так гораздо понятнее, а эффект тот же самый
Добавлено через 2 минуты
еще одно дополнение, видимо if not тут работает как, если равно нулю, по крайней мере это подходит
396 / 254 / 97
Регистрация: 04.11.2022
Сообщений: 378
Artemii St, чтобы это понять, достаточно набрать в консоли «not 0».
1 2 3 4
not 0 True not 1 False
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Разделить элементы массива на четные и нечетные, и отсортировать четные по возрастанию а нечетные по убыванию
Разделить элементы массива на четные и нечетные, и отсортировать четные по возростанию а нечетные.

Разделить список на 2, в первый поместить четные элементы исходного списка, во второй — нечетные
Помогите пожалуйста, написать программу переносящую все нечетные элементы одномерного числового.

Все нечетные элементы последовательности удвоить, а четные – разделить на 2
Здравствуйте, помогите пожалуйста с задачкой на Питоне Вводится последовательность ненулевых.

Все нечетные элементы последовательности чисел удвоить, а четные – разделить на 2
Вводится последовательность ненулевых чисел, 0 – конец последовательности. Все нечетные элементы.
Удалить из массива четные или нечетные значения
Данный массив: А (M вводится с клавиатуры). Необходимо удалить из массива четные или нечетные.
удалить из массива четные или нечетные значения
Дан массив: А (M вводится с клавиатуры). Необходимо удалить из массива четные или нечетные.
