Очистка строки, удаление одиночных символов апострофов из списка слов содержащих апостроф
Всех приветствую!
Есть некие трудности в обработки списков. Предположим есть список:
words = ["we're", "'", "'''", "he's", "'abc", "ghe'", 'hello', "'h", "h'"]
Необходимо удалить только одиночные апострофы из списка, не затрагивая слова содержащие апострофы. Пробелов в списке нет, как и других символов из набора:
from string import punctuation
Результат должен выглядеть так:
result_words = ["we're", "he's", "'abc", "ghe'", 'hello', "'h", "h'"]
Ответы (2 шт):
Автор решения: strawdog
→ Ссылка
words = ["we're", "'", "'''", "he's", "'abc", "ghe'", 'hello', "'h", "h'"]
res = ([x for x in words if "".join(set(x))!="'"])
print(res)
["we're", "he's", "'abc", "ghe'", 'hello', "'h", "h'"]
Автор решения: CrazyElf
→ Ссылка
Ещё как вариант - проверка, что слово состоит не только из символов пунктуации (хотя в вашем случае нужно проверять только апострофы, но обычно задача ставится немного шире):
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'"]