Как убрать запятые в списке python
Как удалить запятые из строки Python?
В сегодняшней статье мы обсудим несколько способов удаления запятых из строки Python. Python — удобный язык программирования, который предоставляет встроенные функции для выполнения различных операций по удалению запятых из строки. Regex () и replace () — одни из таких методов. В этом уроке мы расскажем обо всех возможных способах устранения запятых.
Пример 1
В нашем первом программном коде Python мы используем метод replace (), чтобы удалить все запятые (,) из строки Python. Команда replace () возвращает копию строки, в которой существование подстроки заменяется другой подстрокой. Используя функцию replace (), мы меняем запятые в строке Python на нулевые элементы. Мы дополнительно исследуем функциональность метода replace () с помощью Spyder Compiler.
С помощью Spyder Compiler мы создаем новый файл, чтобы объяснить концепцию метода replace (). Итак, сначала мы создаем строку, содержащую запятые. Затем мы можем использовать функцию replace () для удаления запятых из строки » h, ard, c, ode p, rogr, ammer«. Функция печати применяется для отображения строки без запятых.
Чтобы просмотреть функциональные возможности функции replace (), сохраните и выполните файл программы, и результат будет показан на экране консоли.
Пример 2
Давайте обсудим наш второй программный код, здесь мы используем метод re или regex (), чтобы удалить все запятые (,) из строки Python. Python предоставляет встроенный метод, известный как re, который можно использовать для работы с систематическими выражениями. Термин «re» пакета — это регулярное выражение. Пакет ’re’ содержит функцию re.sub () для удаления запятых из строки Python.
Функция re.sub () используется для замены подстроки. Кроме того, он заменит любое совпадение другим параметром, в данном случае пустой строкой, удалив все запятые из строки. Сначала мы импортируем пакет re, а затем создаем строку, содержащую запятые. Затем мы можем использовать функцию re.sub () в операторе печати, чтобы удалить запятые из строки «h, ard c, ode p, rogr, ammer».
Удаление знаков препинания из текста в Python
Я пытаюсь получить токены (слова) из текстового файла и удалить из него все знаки препинания. Я пытаюсь сделать следующее:
Я получаю следующую ошибку:
4 ответа
Создание программы Python, которая преобразует строку в список, использует цикл для удаления любых знаков препинания, а затем преобразует список обратно в строку и печатает предложение без знаков препинания. punctuation=[‘(‘, ‘)’, ‘?’, ‘:’, ‘;’, ‘,’, ‘.’, ‘!’, ‘/’, », ‘] str=input(Type in a line.
Я пытаюсь убрать некоторые знаки препинания из моего теста в python. По сути, я сделал счетчик токенов и пытаюсь удалить все лишние знаки препинания (например, кавычки и т. д.), которые окружают слово, не удаляя никакой релевантной информации о токенах (например, апострофы). Я искал вдохновения.
re.sub должен применяться к строке, а не к списку!
Надеюсь, это поможет!
Пара вещей здесь, в вашем сценарии. Вы не токенизируете, а разделяете все на отдельные символы! Кроме того, вы удаляете специальные символы после разделения всего на символы.
Лучшим способом было бы прочитать входную строку, удалить специальные символы и затем маркировать входную строку.
Кроме того, если вы хотите сначала разделить токены на токены, а затем удалить специальные символы, вы можете сделать это:
Используйте функцию remove_puncts() ниже
EDIT
Оказывается, использование подхода translator быстрее, чем замена с помощью регулярных выражений
в ваш список ничего не зачитывается
предполагая, что вам нужен список слов, попробуйте это
как указал @Keerthana Прабхакаран, re.sub был исправлен
Я хочу, чтобы Python удалял только некоторые знаки препинания из строки, скажем, я хочу удалить все знаки препинания, кроме ‘@’ import string remove = dict.fromkeys(map(ord, ‘\n ‘ + string.punctuation)) sample = ‘The quick brown fox, like, totally jumped, @man!’ sample.translate(remove) Здесь.
Я хочу попробовать 3 вещи в коде: Удаление специфических знаков препинания Преобразование входных данных в нижний регистр Удаление стоп-слов Как я могу удалить знаки препинания, не используя функцию join.? Я новичок в Python и еще не преуспел в удалении стоп-слов подобным образом. import string.
Похожие вопросы:
Я работаю над тем, чтобы взять образец декларации независимости и вычислить частоту длины слов в ней. Пример текста из файла: When in the Course of human events it becomes necessary for one people.
Я пытаюсь удалить всю пунктуацию из строки с помощью String.replace(sentence,
r[\p
\p], ) Однако это не удаление всех знаков препинания! В качестве наглядного примера: iex(1)>.
Я пытаюсь написать regex, который делает следующее: Удаление знаков препинания, неарабских слов и цифр, кроме точек и запятых. Я хотел бы иметь два разделенных regex, чтобы сделать следующее в java.
Создание программы Python, которая преобразует строку в список, использует цикл для удаления любых знаков препинания, а затем преобразует список обратно в строку и печатает предложение без знаков.
Я пытаюсь убрать некоторые знаки препинания из моего теста в python. По сути, я сделал счетчик токенов и пытаюсь удалить все лишние знаки препинания (например, кавычки и т. д.), которые окружают.
Я хочу, чтобы Python удалял только некоторые знаки препинания из строки, скажем, я хочу удалить все знаки препинания, кроме ‘@’ import string remove = dict.fromkeys(map(ord, ‘\n ‘ +.
Я хочу попробовать 3 вещи в коде: Удаление специфических знаков препинания Преобразование входных данных в нижний регистр Удаление стоп-слов Как я могу удалить знаки препинания, не используя функцию.
Я пишу программу python, которая считывает содержимое текстового файла в массив/список, но у меня возникают проблемы с удалением знаков препинания из текстового файла. Вот что я попробовал: def.
У меня есть такой массив знаков препинания punctuation_data = [ ‘=’ ‘+’ ‘_’ ‘-‘ ‘)’ ‘(‘ ‘*’ ‘&’ ‘^’ ‘%’ ‘SSSS’ ‘AAAA’ ‘wwww’ ‘!’ ‘
‘ ‘،’] и у меня есть текст, чтобы удалить пунктуацию этого.
5 Сопособов убрать ненужные символы из строки на Python
Воспользуемся ‘ str.replace ‘
С поомщью str.replace мы можем менять какие-то символы на другие. Если мы просто хотим убрать какие-то символы, тогда просто заменяем их на пустую строку. str.replace() будет применять замену ко всем найденным совподениям.
Если мы можем указать ограничение для количества совпадений, чтобы не убирать все символы.
С помощью ‘ re.sub ‘
re. sub (pattern, repl, string, count=0, flags=0)
Возвращает строку, полученную путем замены крайних левых неперекрывающихся
совпадений с шаблоном в строке на значение repl. Если совпадения с шаблоном
не найдены, возвращается неизмененная строка
— Из документации Python’а
Если мы хотим убрать символы, то просто заменяем совпадения на пустую строку.
Убрать все символы, кроме букв
С помощью ‘isalpha()’
isalpha() используется для того, чтобы проверять, состоит ли строка только из букв. Возвращает True если является буквой. Мы будем проходить по каждому символу строки и проверять является ли он буквой.
Пример
(c for c in s if c.isalpha())
Перед нами объект генератор, содержащий все буквы из строки:
s1=””.join(c for c in s if c.isalpha())
””.join будет соединять все символы в одну строку.
С помощью ‘filter()’
f = filter(str.isalpha, s)
Функция filter() вернет итератор, содержащий все буквы переданной строки, а join() будем «склеиват» все элементы друг с другом.
С помощью ‘re.sub()’
Рассмотрим s1 = re.sub(“[^A-Za-z]”, ””, s)
Убрать все символы, кроме букв и чисел
С помощью ‘isalnum()’
isalnum() используется, когда мы хотим определить состоит строка только из чисел или букв.
Пройдемся по каждому символу строки, что-бы выявить нужные символы.
С помощью ‘re.sub()’
Убрать все числа из строки, с помощью регулярных выражений
С помощью ‘re.sub()’
Убираем все символы из строки кроме цифр
С помощью ‘isdecimal()’
isdecimal() возвращает истину, если все символы строки являются цифрами, в противном случае возвращается ложь.
Пороходим по каждому символу строки и проверяем и является ли он цифрой. «».join() соединяет все элементы.
С помощью ‘re.sub()’
Рассмотрим s1 = re.sub(“[^0–9]”, ””, s)
С помощью ‘filter()’
Рассмотрим f = filter(str.isdecimal, s)
Примечание
Строки в Python являются неизменяемыми объектами, поэтому все вышеуказаные методы убирает символы из данной строки и возвращает новую, они не меняют состояние оригинальной строки.
Форматированные строки в Python: примеры использования
Ваши строки никогда не были такими ясными, мощными, красивыми.
художественно-промышленная академия имени А. Л. Штиглица
Форматирование и вывод строк — одна из наиболее типичных задач в любом языке программирования. Однако в Python до версии 3.6 у нас было, по большому счёту, всего два способа:
Хотя они оба вполне работали в простых случаях, вывод хоть сколько-нибудь сложных строк был настоящей болью. Только взгляните на этих монстриков:
Что там говорят на вводных уроках про читаемость кода в Python?
Первый вариант никуда не годен: мало того что надо бегать глазами туда-сюда по строке, — надо ещё помнить о ключах после символа % (для разных типов они разные, s — для строк) и не забыть поставить ещё один % между строкой и кортежем с переменными.
С некоторых пор утверждает, что он data scientist. В предыдущих сезонах выдавал себя за математика, звукорежиссёра, радиоведущего, переводчика, писателя. Кандидат наук, но не точных. Бесстрашно пишет о Data Science и программировании на Python.
Базовый синтаксис f-строк
Синтаксис форматированных строк прост и прям. Вы добавляете перед строкой, прямо перед открывающими двойными или одинарными кавычками, букву f. Всё, строка теперь форматированная.
Теперь можно вставлять туда переменные в уже знакомых нам фигурных скобках:
Правда ведь, стало проще и яснее? Не надо бегать взглядом в конец строки и обратно, чтобы понять, где и какая переменная выводится: всё прямо под рукой и перед глазами. И это только самое начало, едем дальше.
Вычисление выражений и вызов функций
Фигурные скобки, несмотря на свой игривый вид, таят в себе большие возможности. Внутри них можно вызывать функции, элементы списков и словарей, а также выполнять операции — нужно просто вставить соответствующие выражения.
Думаем, принцип ясен. Вот ещё пример с вызовом элементов словаря.
Обратите внимание, что для строки и для ключей словаря вам нужно использовать разные кавычки. Например, двойные кавычки для f-строки и одинарные для ключей, как выше, или наоборот. Иначе будет синтаксическая ошибка — Python не поймёт, где строка, а где параметр.
Вывод кавычек и фигурных скобок
Но что, если нужно напечатать оба вида кавычек? Для начала можно попробовать старый добрый бэкслеш, или обратную косую черту. Она изолирует символ, идущий за ней, и позволяет вывести те же самые кавычки, которые оформляют основную строку.
Но внутри фигурных скобок форматированной строки бэкслеш не поддерживается. Увы. Поэтому следующий код вызовет ошибку:
Наиболее простой и разумный путь избежать этого — вычислить выражение с бэкслешем заранее и только затем передать его в форматированную строку:
Аналогично: что, если нам нужно вывести фигурные скобки в форматированной строке? Для начала стоит заметить, что фигурные скобки в f-строках не могут быть пустыми.
Однако мы можем заполнить пустые фигурные скобки другими фигурными скобками.
Главная хитрость: выражения внутри «самых внутренних» фигурных скобок вычисляются только в том случае, если у нас нечётное количество пар этих скобок.
Выравнивание и знаки после запятой
В форматированных строках можно указать количество десятичных знаков после запятой, количество символов, выделенных для вывода значения, а также выровнять значение по левому или правому краю. Общий синтаксис выглядит так:
Значение, двоеточие, затем ширина строки в фигурных скобках, точка, требуемая точность в фигурных скобках.
Для начала давайте посмотрим, как задать точность вывода значения.
Если в параметре precision указать 2f, как здесь, то значение выводится с двумя знаками после запятой. Буква f в данном случае означает fractional part, то есть дробную часть числа. Если оставить просто 2, то значение целиком — и целая, и дробная часть — будет занимать два знака (точка не считается).
Параметр width, стоящий в фигурных скобках после двоеточия и перед точкой, определяет ширину строки, выделенной под значение, и выравнивание в ней.
Если не указать направление выравнивания ( >), то строка по умолчанию будет выравниваться по левому краю ( Генерация списков, словарей и множеств
Генерация списков, словарей и множеств командами в одну строку — наиболее мощные и характерные фичи языка Python. Всё это великолепие работает и с форматированными строками. Вот список из форматированных строк, созданный на основе другого списка:
Форматированная строка может содержать и генератор списка, с этим проблем нет, — тогда она выдаст строку, состоящую из вычисленного списка, а не из команды генератора.
Со словарями и множествами дело обстоит чуть иначе — в основном из-за наличия фигурных скобок. Поэтому для того, чтобы строка была в виде словаря, а не в виде текста генератора, надо добавлять пробелы между внутренними и внешними фигурными скобками.
Есть число, например, 130203,93
Должно получится: 130203
Какой символ в «регулярных» выражениях заменяет * на «все что после»?
Либо как указать в том же реплейсе, чтобы удалялось несколько любых символов, например 2 после запятой и включая запятую?
7 ответов 7
Если задача состоит именно в удалении первой запятой и всего что после нее, вот это сработает:
Подключаем модуль для работы с регулярными выражениями:
Подробнее про модуль re тут.
Если имеется число в строковом представлении формата «12345.123», то чтобы отбросить цифры после запятой, достаточно int(float(«12345.123»)) = 12345
Воспользуйтесь floor() из модуля math.
Чтобы удалить все символы после первой запятой, включая саму запятую, из строки:
Все(!) ответы, приведённые на данный момент, кроме s.split(‘,’, 1)[0] не справляются с этой простой задачей, например:
re.sub(r’,\d+’, », MyString) удаляет запятые, которыми следуют цифры, оставляя все остальные символы. Чтобы удалить все символы после запятой, используя регулярное выражение:
то есть аналогом «,*» шаблона является ‘,.*’ регулярное выражение.
Чтобы удалить произвольную пунктуацию, можно использовать r»\p
+» regex: Как найти символы из кортежа (‘!’,’,’,’?’) в строке и удалить их?