Я работаю над решением для анаграмм в Python 2.7 и натолкнулся на любопытство, которое мне не удалось найти. Программа считывает данные из файла, который содержит список анаграмм в формате, как так:Прямая косая черта в Python replace()
# anagram
# anagram
# anagram
.
.
.
etc
Читая это непосредственно в строку, Python, очевидно, комментарии все, так что я играл с заменой() пытается найти способ лишить хэш-символы. Попытка ...
string = file.read().replace('#', '')
... будет производить пустую строку. Я пытался использовать обратную косую черту перед хэша, но goofed и typo'd косую черту, которая дала мне результат:
string = file.read().replace('/#', '')
string = '#\tanagram\n#\tanagram\n#\tanagram'
Зачистка ненужные символы не было никакой опасности в этой точке и работает программа в совершенстве. Тем не менее, я не доволен использованием строки кода, которую я не совсем понимаю. Мне не повезло найти какую-либо документацию или код, который объясняет/делает нас чем-то вроде этого, поэтому я либо искал неправильные места, либо искал неправильную вещь.
Может ли кто-нибудь предложить объяснение, почему оно ведет себя так?
в вашем втором примере 'replace' просто ничего не заменяет и возвращает исходную строку, потому что в вашем файле у вас нет последовательности'/# '. – SilentGhost
# только для Python в исходном коде, а не в строках, считанных из файла. –