Очистка строки, удаление одиночных символов апострофов из списка слов содержащих апостроф
Необходимо удалить только одиночные апострофы из списка, не затрагивая слова содержащие апострофы. Пробелов в списке нет, как и других символов из набора:
from string import punctuation
Результат должен выглядеть так:
result_words = ["we're", "he's", "'abc", "ghe'", 'hello', "'h", "h'"]
Отслеживать
задан 12 ноя 2021 в 8:05
2,327 1 1 золотой знак 5 5 серебряных знаков 30 30 бронзовых знаков
Пожалуйста, уточните вашу конкретную проблему или приведите более подробную информацию о том, что именно вам нужно. В текущем виде сложно понять, что именно вы спрашиваете.
12 ноя 2021 в 8:08
одиночные — нет букв ни с какой стороны или достаточно с одной?
12 ноя 2021 в 8:12
одиночные — нет букв ни с какой стороны, наличие одной буквы с любой стороны имеет в общем представление слова с апострофом, например [«h'»] или [«‘h»] будут словами с апострофом, у которых апостроф удалять не нужно.
12 ноя 2021 в 8:19
посмотрите regex Negative Lookahead и Negative Lookbehind. Там все очень просто
12 ноя 2021 в 8:24
@splash58 спасибо за наводку, изучаю
12 ноя 2021 в 8:26
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
words = ["we're", "'", "'''", "he's", "'abc", "ghe'", 'hello', "'h", "h'"] res = ([x for x in words if "".join(set(x))!="'"]) print(res)
Отслеживать
ответ дан 12 ноя 2021 в 8:33
25.7k 4 4 золотых знака 21 21 серебряный знак 36 36 бронзовых знаков
Огромное спасибо, данное решение для меня отлично подходит. Все же стоит для себя изучить регулярные выражения тоже :^)
12 ноя 2021 в 8:40
Ещё как вариант — проверка, что слово состоит не только из символов пунктуации (хотя в вашем случае нужно проверять только апострофы, но обычно задача ставится немного шире):
from string import punctuation words = ["we're", "'", "'''", "he's", "'abc", "ghe'", 'hello', "'h", "h'"] result_words = [w for w in words if set(w) - set(punctuation)] print(result_words)
["we're", "he's", "'abc", "ghe'", 'hello', "'h", "h'"]
Отслеживать
ответ дан 12 ноя 2021 в 8:41
70.3k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак
- python
- список
- фильтрация
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973
База Знаний: Calc. Символ «’» перед числом
Если перед числами в строке ввода стоит символ «’», то в этом случае цифры не распознаются как числа.
Символ «’» (апостроф) является символом принудительного форматирования данных «как текст», поэтому он не отображается в ячейках; увидеть его можно только в строке ввода перед данными.
«Язык формул» электронных таблиц разработан задолго до появления MS Windows и Microsoft Office. Символ «апостроф» в начале содержимого ячейки всегда был символом принудительного форматирования содержимого «как текст». Данный способ форматирования является преимущественным перед форматом ячейки.
Так работали Quatro Pro, Super Calc, таблицы Lotus 1-2-3.
Так работают и все современные электронные таблицы.
«’» перед цифровыми значениями следует использовать, когда вводятся константы, не являющиеся числами. Например — банковские и почтовые реквизиты: номера расчётных и корреспондентских счетов, индексы; различные идентификаторы.
Отмена принудительного текстового форматирования
Для единичной отмены принудительного текстового форматирования в ячейке следует в строке ввода удалить ведущий символ «’» (апостроф).
Для массовой отмены принудительного текстового форматирования следует воспользоваться регулярными выражениями. Для этого нужно:
- вызвать диалог поиска и замены Ctrl + F ;
- ввести в строке Найти: .+
- ввести в строке Заменить: &
- щёлкнуть кнопку Больше параметров и установить флаг Регулярные выражения
- щёлкнуть кнопку Заменить все
При необходимости можно обработать либо заданный диапазон, либо все листы.
| «’» перед цифровыми значениями не обнаруживается средствами поиска. |
Как убрать апостроф в LibreOffice Calc

Здесь про LibreOffice Calc и как ловко убрать символ апострофа, который приходит с файлами где применили явное указание цифры считать как текст. То есть символ «апостроф» в начале содержимого ячейки, есть символ принудительного форматирования содержимого «как текст». Вам этот символ также может пригодиться. Символ «’» перед цифровыми значениями следует использовать, когда вводятся константы, не являющиеся числами. Например — банковские и почтовые реквизиты: номера расчётных и корреспондентских счетов, индексы; различные идентификаторы. Но сейчас не об этом, а о том как его убрать быстренько.
Далее шоу в картинках, как убрать символ «апострофа»
С виду и не скажешь где он есть.

Когда он есть, текст похожий на цифры остаётся текстом и нельзя применить к нему цифровые форматы.

Но стоит ячейку просмотреть в режиме «редактировать» и сразу становится виден этот апостроф.

В единичных случаях его можно просто удалить, а вот массово делаем так как делают все понастоящему ленивые. Выделяем все ячейки, в которых будем удалять апостроф. В примере выделен столбик. Жмём комбинацию кнопок на клавиатуре CTRL+H и помогаем открыться форме «Найти и заменить»

Вводим в строку Найти: .+ (точка плюс)
В строку Заменить: & (амперсанд)
Открываем Другие параметры и галку на «Регулярные выражения» (и ясно дело на «Только текущее выделение»)
И жми «Заменить все»

Вуаля! Всё готово. Применяй любые цифровые форматы.

Я писал эту заметку 10 минут, поэтому тебе нужно поделится этой заметкой с другом, тем более если он пользуется бесплатным LibreOffice Calc. А если он не пользуется LibreOffice, ну и ладно, пусть пользуется платным Office от MICROSOFT.
Как убрать апостроф перед числом в Excel? Вопрос жизни и смерти)
После выгрузки данных в Excel,программа перестала считать формулы, и преобразовывать их в числа, при проверке правильности формулы, было выявлено, что в ячейках одного из столбцов перед числом стоит апостроф, который не виден в строке формул. Формат ячеек числовой, не текстовый. Многие из советов данные в интернете по решению данной проблемы были опробованы, но не принесли положительных результатов. При наборе числа вручную проблема исчезает, но пересчитывать таким образом семь тысяч позиций-безумие).
Не сочтите за наглость, помогите блондинке пожалуйста)
Лучший ответ
а, ну апостроф — известная фишка, чтобы число форматировалось как строка
можно, наверно, заменить апострофы на пустоту
или во вспомогательном столбце сделать формулу =ПРАВСИМВ (A1;2;ДЛСТР (A1)), протянуть её на всю длину таблицы, а потом специальной вставкой заменить значения исходного столбца
Остальные ответы
Зелёный треугольничек сверху слева есть в этих ячейках? А восклицательный знак появляется, когда выделяешь эту ячейку? Тогда просто выделить все нужные ячейки, по стрелочке рядом с восклицательным знаком и выбрать «Преобразовать в число». И всё.
restavratorУченик (145) 3 года назад
Всё просто без всяких формул.
В Calc (LibreOffice) эта проблема решается так:
Выделяем нужный участок таблицы, где необходимо убирать из цифр апостроф. Жмем Правка — Найти и заменить (Ctrl+H), ищем — «.+» заменять на «&» (искать без кавычек). Перед поиском нажать Другие параметры и установить галочку напротив «Регулярные выражения». Заменить все.