Python удаление кавычек
И я все еще получаю тот же результат, кавычки все еще в строке. Кто-нибудь знает, почему это происходит. Это связано с оператором.join?
Поделиться Источник 11 августа 2017 в 22:05
4 ответа
str.replace() в Python не изменяет строку на месте. Это означает, что для того, чтобы что-то произошло, вам нужно присвоить результат переменной.
string1 = "foo" string2 = string1.replace("foo", "bar") print(string1) >>> "foo" print(string2) >>> "bar"
string1 остается тем же, а string2 имеет измененное значение.
Таким образом, в вашем случае вы хотите:
des = des.replace('"', '')
Поделиться 11 августа 2017 в 22:09
lists=['"4"','"2"','"3"','"1"'] des=" ".join(value.strip('"') for value in lists)
Вывод
'4 2 3 1'
Поделиться 11 августа 2017 в 22:08
Вам нужно иметь переменную или сам des , чтобы сохранить заменяемую строку.
des=des.replace('"', '')
Поделиться 11 августа 2017 в 22:10
Вам нужно сделать что-то вроде следующего:
lists=['"4"','"2"','"3"','"1"'] des=" ".join(lists) des = des.replace('"', '') print (des)
Поскольку у вас нет понятия, заменяются ли значения или нет. Вам нужно переназначить, тогда вы получите следующий результат:
4 2 3 1
Как удалить кавычки из строк в R (3 метода)
Есть три распространенных способа удаления кавычек из строк в R:
Способ 1: Используйте print()
print(some_strings, quote=FALSE)
Способ 2: Используйте noquote()
noquote(some_strings)
Способ 3: Используйте кошку()
cat(some_strings)
В следующих примерах показано, как использовать каждый метод со следующим вектором строк:
#define vector of strings some_strings
Обратите внимание, что строки по умолчанию печатаются в кавычках.
Пример 1. Удаление кавычек из строк с помощью функции print()
В следующем коде показано, как использовать функцию print() для печати строк с удаленными кавычками:
#print vector of strings without quotes print(some_strings, quote=FALSE) [1] hey these are some strings
Пример 2. Удаление кавычек из строк с помощью noquote()
В следующем коде показано, как использовать функцию noquote() для печати строк с удаленными кавычками:
#print vector of strings without quotes noquote(some_strings) [1] hey these are some strings
Пример 3. Удаление кавычек из строк с помощью функции cat()
В следующем коде показано, как использовать функцию cat() для печати строк с удаленными кавычками:
#print vector of strings without quotes cat(some_strings) hey these are some strings
Вы также можете использовать аргумент \n для печати каждой строки без кавычек на новой строке:
#print vector of strings without quotes each on a new line cat(paste(some_strings, " \n ")) hey these are some strings
Обратите внимание, что каждая строка в векторе печатается с новой строки.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Удаление кавычек в списке
При интерпретации показанного вами кода питоновый парсер не оставит в реальных объектах ни одной кавычки, а создаст список из трёх строк, внутри которых будут храниться только unicode-символы цифр и точек без кавычек. Поэтому ваш вопрос в текущем его виде не имеет смысла.
22 окт 2021 в 18:42
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Черточки это одинарные кавычки или апострофы. Ими описываются строковые литералы или просто строки
Лучше их не удалять, а преобразовать в числа, а именно в вещественные:
l = ['0.14', '0.4348', '0.06'] numbers = [float(x) for x in l] print(numbers)
Или меняем текущий список, заменяя строки на числа:
l = ['0.14', '0.4348', '0.06'] for i in range(len(l)): l[i] = float(l[i]) print(l)
[0.14, 0.4348, 0.06]
Python: Кавычки
В этом уроке мы разберемся, что такое строка и какую роль в коде играют кавычки.
Определить строку довольно просто — это некий набор символов. Представим, что у нас есть такие записи:
'Hello' 'Goodbye' 'G' ' ' ''
Какие из этих вариантов — строки? На самом деле, все пять вариантов подходят:
- С 'Hello' и 'Goodbye' все очевидно — мы уже работали с подобными конструкциями и называли их строками
- 'G' и ' ' — тоже строки, просто в них всего по одному символу
- '' — это пустая строка, потому в ней ноль символов
Строкой мы считаем все, что находится внутри кавычек: даже если это пробел, один символ или вообще отсутствие символов.
Выше мы записывали строки в одинарных кавычках, но это не единственный способ. Можно использовать и двойные:
print("Dracarys!")
Теперь представьте, что вы хотите напечатать строчку Dragon's mother. Апостроф перед буквой s — это такой же символ, как одинарная кавычка. Попробуем:
print('Dragon's mother') # SyntaxError: invalid syntax
Такая программа не будет работать. С точки зрения Python строчка началась с одинарной кавычки, а потом закончилась после слова dragon. Дальше были символы s mother без кавычек — значит, это не строка. А потом была одна открывающая строку кавычка, которая так и не закрылась: ') . Этот код содержит синтаксическую ошибку — это видно даже по тому, как подсвечен код.
Чтобы избежать этой ошибки, мы используем двойные кавычки. Такой вариант программы сработает верно:
print("Dragon's mother")
Теперь интерпретатор знает, что строка началась с двойной кавычки и закончиться должна тоже на двойной кавычке. А одинарная кавычка внутри стала частью строки.
Верно и обратное. Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо делать в одинарных. Причем количество кавычек внутри самой строки неважно.
Теперь представим, что мы хотим создать такую строку:
Dragon's mother said "No"
В ней есть и одинарные, и двойные кавычки. Нам нужно каким-то образом указать интерпретатору, что кавычки — это один из символов внутри строки, а не начало или конец строки.
Для этого используют символ экранирования: \ — обратный слэш. Если мы поставим \ перед кавычкой (одинарной или двойной), то интерпретатор распознает кавычку как обычный символ внутри строки, а не начало или конец строки:
# Экранируем кавычки вокруг No, чтобы интерпретатор # распознал их как часть строки print("Dragon's mother said \"No\"") # => Dragon's mother said "No"
Обратите внимание, что в примере выше нам не пришлось экранировать одинарную кавычку (апостроф 's), потому что сама строка создана с двойными кавычками. Если бы строка создавалась с одинарными кавычками, то символ экранирования нужен был бы перед апострофом, но не перед двойными кавычками.
Если нужно вывести сам обратный слеш, то работает такое же правило. Как и любой другой специальный символ, его надо экранировать:
print("\\") # => \
Задание
Напишите программу, которая выведет на экран:
"Khal Drogo's favorite word is "athjahakar""
Программа должна вывести на экран эту фразу в точности. Обратите внимание на кавычки в начале и в конце фразы:
"Khal Drogo's favorite word is "athjahakar""
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.