Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 5
1

Удаление вводимых элементов через remove

05.12.2020, 13:19. Показов 1151. Ответов 5

Author24 — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
roll = [y1, y2, y3, y4, y5, y6]
print (roll)
user = int(input())
for user in roll:
 roll.remove(user)
 print(roll)
почему выдает следующий результат:
Python
1
2
3
4
5
[4, 3, 6, 4, 3, 6]
4
[3, 6, 4, 3, 6]
[3, 4, 3, 6]
[4, 3, 6]
Если я правильно разобрался в методе, то remove должен удалить только первую четверку и по итогу выдавать
Python
1
[3, 6, 4, 3, 6]
откуда взялись следующие два списка?
и как можно через input ввести не одно число а два, например 4, 3?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2020, 13:19
Ответы с готовыми решениями:

Remove(); удаление файла
Помогите пожалуйста! нужно в путь к файлу указать еще и переменную попробова так-...

Удаление файла remove
Здравствуйте, Пытаюсь просто удалить файл с помощью простой функции remove: if...

Удаление текста из TextBox. Не пашет Remove
Задача: фильтровать ввод в текстовое поле(textBox2) только цифр, символы не вносить в текстбокс....

Функция remove: удаление всех включений элемента x из стека
реализуйте функцию remove которая удаляет все включения элемента x из стека

Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF
Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному...

5
Эксперт Python
8213 / 4333 / 1837
Регистрация: 27.03.2020
Сообщений: 7,154
05.12.2020, 14:08 2
Niklous2006,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
roll = [4, 3, 6, 4, 3, 6]
print (roll)
# user = 4
user = int(input())
for us in reversed(roll):
    while user in roll :
        roll.remove(user)
        print(roll)
        
# user = 4, 3
roll = [4, 3, 6, 4, 3, 6]
print (roll)
user = list(map(int,input().split()))
for us in reversed(roll):
    for u in user:
        while u in roll :
            roll.remove(u)
            print(roll)
Добавлено через 3 минуты
Генератором
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
roll = [4, 3, 6, 4, 3, 6]
print (roll)
# user = 4
user = int(input())
roll = [i for i in roll if i != user]
print(roll)
        
# user = 4, 3
roll = [4, 3, 6, 4, 3, 6]
print (roll)
user = list(map(int,input().split()))
roll = [i for i in roll if i not in user]
print(roll)
1
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
06.12.2020, 12:49 3
Цитата Сообщение от Niklous2006 Посмотреть сообщение
почему выдает следующий результат:
Может Вы уже поняли почему, разобравшись в коде Gdez, но на всякий случай поясню. Вы плохо понимаете как работает цикл for.
Внутри цикла, user у Вас является переменной цикла. А переменной цикла на каждом шаге присваивается новое значение. На первом шаге у Вас user равно 4, а на втором шаге user уже равно 6 (присвоен второй элемент из нового списка [3, 6, 4, 3, 6]), поэтому удаляется 6, а на третьем шаге user уже будет равно 3 (присвоен третий элемент из нового списка [3, 4, 3, 6]), поэтому удаляется 3. Поэтому и получаете на каждом шаге цикла такие списки.Gdez, показал Вам как можно решить задачу. Еще можно было бы использовать не цикл for, а цикл while, что и делает Gdez, только не понятно, зачем он оставил цикл for. Может я не правильно понял условие задачи?
Пока в списке есть четверки while (user in roll):
удалять четверки.
Я понимаю, что введенное число нужно удалить из списка везде где оно встречается, для этого и нужен цикл.
Python
1
2
3
4
5
6
7
roll = [4, 3, 6, 4, 3, 6]
print (roll)
# user = 4
user = int(input())
while user in roll :
    roll.remove(user)
    print(roll)
Дает тот же результат.
Может цикл for нужен когда вводится два числа? Я не стал разбираться. Но когда вводится одно число, он точно не нужен.
0
Эксперт Python
8213 / 4333 / 1837
Регистрация: 27.03.2020
Сообщений: 7,154
06.12.2020, 15:44 4
Viktorrus, Поторопился - писал для списка user, и "скопировал" код для переменной user. Виноват, признаю
0
0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 5
07.12.2020, 12:31  [ТС] 5
Цитата Сообщение от Viktorrus Посмотреть сообщение
Я понимаю, что введенное число нужно удалить из списка везде где оно встречается, для этого и нужен цикл.
Не совсем,число нужно удалить не везде, а только первое, например выборка [1, 3, 5, 5, 1, 5] При вводе с клавиатуры 1, 5 список должен выглядеть [3, 5, 1, 5], ну и соответственно если вводимых числа 3, то удаляется только первое которое встречается в списке.

Добавлено через 51 секунду
Цитата Сообщение от Viktorrus Посмотреть сообщение
Я понимаю, что введенное число нужно удалить из списка везде где оно встречается, для этого и нужен цикл.
Не совсем,число нужно удалить не везде, а только первое, например выборка [1, 3, 5, 5, 1, 5] При вводе с клавиатуры 1, 5 список должен выглядеть [3, 5, 1, 5], ну и соответственно если вводимых числа 3, то удаляется только первое которое встречается в списке.
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
07.12.2020, 13:26 6
Niklous2006, Я имел ввиду случай когда вводится только одно число. Случай, когда вводится несколько чисел, я не рассматривал. Но в любом случае, из вашего пояснения следует, что у Вас в шапке не прописано четкое условие для этого задания. Нужно давать не просто код, а сначала четко описать условие задания, а потом уже свой вариант решения.
0
07.12.2020, 13:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2020, 13:26
Помогаю со студенческими работами здесь

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING)
Салем, начал изучать файловую работу в С++, и столкнулся с такой проблемой, что функция remove()...

List.remove() vs asList.remove()
Всем привет. Хотел решить одну задачку тут на форуме, но что-то у меня все из рук валится, и в...

Удаление элементов стека через массив
Имеется код: #include <iostream> #include <limits> #include <conio.h> using namespace std;...

Удаление элементов вектора через итератор
почему так: //работает vector<int>::iterator it=garage.begin(); while(it!=garage.end()) {...

Удаление из строки повторяющихся элементов (через функцию)
Добрый день! #include <iostream> #include <math.h> using namespace std; //Удаление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru