Удалить смешанные символы новой строки и цифры ⇐ Python
-
Anonymous
Удалить смешанные символы новой строки и цифры
Предположим, у меня есть такой список строк:
a = ['6306\nHLIAN\nРАЗЛИЧНЫЕ', '10215\nСПИНА', '10279\nPIPERI-\nΜYTER', '38003\nКУКУРУЗА\nСЛАДКОЕ', '10234РОКА', '10232\nАНТ', '8682PIPER\nYPAITH', '8676\nМАРОЙЛ', '10211\nΚAROT\nROOT', '8685AGG\nYPAU'] Я хочу удалить цифры и сохранить первую часть слова. Итак, мне нужен результат:
['ХЛИАН', 'СПИНА', 'ПИПЕРИ', 'КУКУРУЗА', 'РОКА', 'АНТ', 'ПАЙПЕР', 'МАРОЙЛ', 'КАРОТ', 'АГГ'] Я пробовал что-то вроде этого:
из цифр импорта строки защита clean_list (данные): Remove_digits = str.maketrans('', '', цифры) no_digs = [s.translate(remove_digits) для s в данных] результаты = [] для x в no_digs: если '\n' в x: если x.count('\n') == 2: results.append(x.split('\n')[-2]) элиф x.count('\n') == 1: results.append(x.split('\n')[1]) еще: результаты.append(x) вернуть результаты и я получаю:
['ХЛИАН', 'СПИНА', 'ПИПЕРИ-', 'КУКУРУЗА', 'РОКА', 'АНТ', 'ЮПАИТ', 'МАРОЙЛ', 'КАРОТ', 'ЯПАУ'] Я не могу поймать '8682PIPER\nYPAITH', и '8685AGG\nYPAU', потому что у них есть один \n и два слова между.
Кроме того, было бы неплохо, если бы 'PIPERI-' был без символа - (хотя это можно сделать на следующем этапе).
>
Предположим, у меня есть такой список строк:
a = ['6306\nHLIAN\nРАЗЛИЧНЫЕ', '10215\nСПИНА', '10279\nPIPERI-\nΜYTER', '38003\nКУКУРУЗА\nСЛАДКОЕ', '10234РОКА', '10232\nАНТ', '8682PIPER\nYPAITH', '8676\nМАРОЙЛ', '10211\nΚAROT\nROOT', '8685AGG\nYPAU'] Я хочу удалить цифры и сохранить первую часть слова. Итак, мне нужен результат:
['ХЛИАН', 'СПИНА', 'ПИПЕРИ', 'КУКУРУЗА', 'РОКА', 'АНТ', 'ПАЙПЕР', 'МАРОЙЛ', 'КАРОТ', 'АГГ'] Я пробовал что-то вроде этого:
из цифр импорта строки защита clean_list (данные): Remove_digits = str.maketrans('', '', цифры) no_digs = [s.translate(remove_digits) для s в данных] результаты = [] для x в no_digs: если '\n' в x: если x.count('\n') == 2: results.append(x.split('\n')[-2]) элиф x.count('\n') == 1: results.append(x.split('\n')[1]) еще: результаты.append(x) вернуть результаты и я получаю:
['ХЛИАН', 'СПИНА', 'ПИПЕРИ-', 'КУКУРУЗА', 'РОКА', 'АНТ', 'ЮПАИТ', 'МАРОЙЛ', 'КАРОТ', 'ЯПАУ'] Я не могу поймать '8682PIPER\nYPAITH', и '8685AGG\nYPAU', потому что у них есть один \n и два слова между.
Кроме того, было бы неплохо, если бы 'PIPERI-' был без символа - (хотя это можно сделать на следующем этапе).
>
Мобильная версия