|
0 / 0 / 1
Регистрация: 26.03.2017
Сообщений: 83
|
|||||||||||
Удаление элемента из списка по условию04.05.2017, 18:25. Показов 7970. Ответов 18
Метки нет (Все метки)
Здравствуйте, дорогие форумчане!
Нужна Ваша помощь! Проблема: дан массив вида:
Необходимо пройти по элементам элементов массива и если встречается "-", то удалить следующий за ним элемент. На выходе должно получиться следующее:
Очень надеюсь на Вашу помощь!
0
|
|||||||||||
| 04.05.2017, 18:25 | |
|
Ответы с готовыми решениями:
18
Вставка нового элемента в список, удаление элемента из списка, просмотра содержимого списка Удаление элементов списка по условию Удаление элемента, стоящего посередине списка (если длина списка нечетна) |
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|||
| 04.05.2017, 18:40 | |||
|
0
|
|||
|
0 / 0 / 1
Регистрация: 26.03.2017
Сообщений: 83
|
||||||
| 04.05.2017, 18:47 [ТС] | ||||||
|
Да, извините, это список, я ошибся.
Проблема в следующем: Вот мой код:
mas[number1][number].pop(number) AttributeError: 'str' object has no attribute 'pop'
0
|
||||||
|
|
||||||
| 04.05.2017, 19:02 | ||||||
0
|
||||||
|
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
|
|||||||||||
| 04.05.2017, 19:10 | |||||||||||
|
Garry Galler, не сработает если в l будет два и более дефиса смотри внимательно свое решение второй злемент
было
0
|
|||||||||||
|
|
|
| 04.05.2017, 19:16 | |
|
Semen-Semenich,
Тут, согласен. Но ТС привел конечный вид массива - он совпал с тем, что делает скрипт. Если ТС решит, что ему на самом деле нужно проверять все дефисы - тогда нужен будет другой вариант. Добавлено через 2 минуты А понял - я не тот вариант подставил для сравнения. Поэтому у меня и совпало :-) Тогда да - это не годится.
0
|
|
|
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
|
||||||
| 04.05.2017, 19:17 | ||||||
Сообщение было отмечено alex9816 как решение
Решение
1
|
||||||
|
0 / 0 / 1
Регистрация: 26.03.2017
Сообщений: 83
|
|
| 04.05.2017, 19:24 [ТС] | |
|
Да, нужны все "-", простите, не уточнил.
Добавлено через 4 минуты Semen-Semenich, огромное спасибо!!! Просто спасли!
0
|
|
|
|
||||||
| 04.05.2017, 19:28 | ||||||
|
Ну и я докину раз уж начал:
1
|
||||||
|
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
|
||||||||||||||||
| 04.05.2017, 19:38 | ||||||||||||||||
|
Garry Galler, опять не учел что после удаления элемента индексы сдвигаются плэтому у тебя происходит удаление двух элементов
исходный
0
|
||||||||||||||||
|
|
|||||||||||
| 04.05.2017, 19:55 | |||||||||||
|
Semen-Semenich,
Где выдало? Вот, например, исходный:
Как и должно быть. Итерация же с конца - так же как в вашем варианте с reverse. Индексы не сдвигаются. Добавлено через 6 минут Скрин прикладывать :-)?
1
|
|||||||||||
|
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
|
|
| 04.05.2017, 19:57 | |
|
Garry Galler, пардон мой косяк я твой код дописал после своего и когда мой изменил массив потом твой продолжил менять а я тупо сравнил ответы
0
|
|
|
|
||||||
| 04.05.2017, 21:28 | ||||||
|
Ясно. А я уж думал, что у меня интерпретатор заинтерпретировался :-)
Добавлено через 1 час 26 минут Для коллекции ТС'у еще и oneliner:
0
|
||||||
|
0 / 0 / 1
Регистрация: 26.03.2017
Сообщений: 83
|
||||||
| 04.05.2017, 21:37 [ТС] | ||||||
|
Garry Galler, спасибо огромное!!!
У меня другая проблема возникла. Ошибка: ValueError: invalid literal for int() with base 10: '-' Это я работаю все с тем же списком. Причём моя программа то нормально работает, то выдаёт ошибку. К сожалению код предоставить не могу, так как эта программа содержит в себе более 500 строк и использует в себе аналогичную программу. Могу выложить функцию, в которой возникает эта проблема, надеюсь этого будет достаточно) Функция, в которой возникает ошибка:
0
|
||||||
|
|
|
| 04.05.2017, 22:03 | |
|
У вас код пытается преобразовать в int все без разбору (например, дефис: with base 10: '-'). Нужно предварительно проверять "число ли эта строка".isdigit() и только потом преобразовывать в int. Либо использовать try: except там, где идет преобразование.
Добавлено через 2 минуты Проверка while number_instruction != "-": вас не спасает, потому что number_instruction может быть присвоено значение в виде дефиса уже внутри кода, где у вас идет кастование в int. Добавлено через 3 минуты Например, в строке 41. Добавлено через 29 секунд А ниже - опять каст в int. И никакой проверки.
0
|
|
|
0 / 0 / 1
Регистрация: 26.03.2017
Сообщений: 83
|
|||||||||||
| 04.05.2017, 22:09 [ТС] | |||||||||||
|
По алгоритму в принципе не может записываться в эту переменную дефис "-". Потому что не должно осуществляться никакой записи, так как если встречается "-", то функция должна немедленно завершаться. По крайней мере так задумано, но возможно реализовано не правильно. Поэтому вопрос, прав ли я, что действительно не должно производиться записи? Если нет, то почему? И если нет, то как мне применить функцию isdigit(), чтобы при встрече "-" цикл сразу заканчивался и не производил запись "-" в переменную?
Добавлено через 58 секунд А, то есть такая проверка не годится. Понял. Тогда как мне быть с isdigit()? Добавлено через 3 минуты Только почему ругается такой ошибкой на эту строку:
0
|
|||||||||||
|
|
|
| 04.05.2017, 22:19 | |
|
Почему так - честно, не знаю. Тут какой-то подводный камень есть.
Но лучше просто проверять каждый раз перед передачей int'у значение, что вы даете ему точно число.
0
|
|
|
0 / 0 / 1
Регистрация: 26.03.2017
Сообщений: 83
|
||||||||||||||||||||||||||
| 05.05.2017, 09:24 [ТС] | ||||||||||||||||||||||||||
|
По поводу кастования в int. Теоретически оно и не нужно, но практически иначе. Если убрать, то выдается следующая ошибка:
Добавлено через 44 секунды Проверять не получится, так как я не могу обратиться к элементу без этого int. Добавлено через 8 минут Собственно, вот:
Постарался исправить, сделал по Вашему совету, вроде ошибка исчезла. Протестировал раз 10. Собственно, сам код:
Проблему с ограничением правой стороны решил. Добавлено через 2 минуты Просто недоглядел ![]() Решение:
Большое спасибо за помощь!!!
0
|
||||||||||||||||||||||||||
|
|
||||||
| 05.05.2017, 18:15 | ||||||
|
Я бы сделал так:
0
|
||||||
| 05.05.2017, 18:15 | |
|
Помогаю со студенческими работами здесь
19
удаление из списка элемента и редактирование списка!!!Решаемо но не для моего глупого мозга
Написать методы: добавление элемента в список, удаление элемента из списка Удаление элемента списка/вывод нового списка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|