Мне нужно написать код на Python, который сможет определить, есть ли какой-то символ в строке и заменить его другим символом моего выбора. например, мне нужно заменить все гласные в строке на «$ @», поэтому после того, как строка «hello world» пройдет через код, она превратится в «h $ & @ ll $ & @ w $ & @ rld ». Кто-нибудь знает, как это сделать, используя очень простой python и не все существующие функции? спасибоPython - поиск и замена гласных в строке
ответ
Через re.sub
,
>>> import re
>>> re.sub(r'[aeiou]', r'$&@', "hello world")
'h$&@ll$&@ w$&@rld'
Это похоже на ранее существовавшую функцию. – DSM
@DSM я не понял вашу точку зрения. –
Можете ли вы опубликовать причину понижения? –
Используйте re модуль:
import re
string = "Hello world"
print(re.sub("a|e|i|o|u", "xx", string))
отпечатывается
>>> Hxxllxx wxxrld
Первый метод
>>> "".join(map(lambda x: '$&@' if x in "aeiou" else x, "hello world"))
'h$&@ll$&@ w$&@rld'
Второй метод
>>> s = "hello world"
>>> for ch in s:
... if ch in "aeiou":
... s = s.replace(ch,'$&@')
...
>>> s
'h$&@ll$&@ w$&@rld
Я ставлю, что ваш второй метод - это то, что ищет его учитель. –
@RickTeachey, последний раз, когда я смотрел str.replace, была функция/метод –
так, что это 'for',' if', 'in',' = ','() ',' '' ',', ',' .' и ':'. это был не очень хороший вопрос. –
без использования re
или str.replace
:
def trans(s):
rpl = "$&@"
res = ""
for letter in s: # loop over the string s
if letter in {"a","e","i","o","u","A","E","I","O","U"}: # if any letter in vowels
res+= rpl # add replacement substring
else:
res+= letter # else just add the letter
return res
Чтобы просто вывести слово, которое мы могли бы удалить конкатенацию:
import sys
def trans(s,rpl):
for letter in s: # loop over the string s
if letter in {"a","e","i","o","u","A","E","I","O","U"}: # if any letter in vowels
sys.stdout.write(rpl)
else:
sys.stdout.write(letter)
(trans("hello world","$&@"))
@RickTeachey, если нужен только вывод, мы могли бы удалить много кода. –
- 1. Поиск количества гласных в строке
- 2. Поиск количества гласных в строке
- 3. Поиск и замена Python в строке
- 4. Замена гласных в строке с увеличением числа
- 5. Поиск и замена в строке
- 6. Поиск и замена в строке
- 7. Поиск и замена в строке
- 8. python поиск и замена
- 9. Поиск/замена в строке
- 10. Python нечеткий поиск и замена
- 11. Поиск и замена Python
- 12. Поиск и замена в строке в D
- 13. Подсчет числа гласных в строке в Python
- 14. Замена гласных звездочками
- 15. Пакетный поиск и замена символов в строке
- 16. Поиск и замена строки в строке
- 17. TCL: поиск и замена символа в строке
- 18. Обнаружение гласных в строке
- 19. Python Regex поиск и замена
- 20. Maya (Python) Поиск и замена
- 21. Python Поиск и замена строки
- 22. Печать только гласных в строке
- 23. Поиск в командной строке с шестнадцатеричным кодом, поиск и замена
- 24. Поиск по строке и замена частей строки
- 25. Поиск гласных в строке в java, затем печать суммы
- 26. Замена всех гласных на строку
- 27. Поиск и замена значения в словаре Python
- 28. Быстрый множественный поиск и замена в Python
- 29. поиск и замена элементов в списке (python)
- 30. Условный поиск и замена в файле Python
"нет заранее существующих функций" бит звучит как домашнее задание. –
'print (''. Join ((c, '$ & @') [c.lower() в 'aeiou'] для c в 'hello world'))'. А теперь иди объясните это своему учителю. – Matthias
Что именно вы подразумеваете под «предварительно существующими функциями»? –