Python中的正斜杠替换()

时间:2010-11-19 16:55:03

标签: python string replace

我一直在使用Python 2.7中的anagram求解器,并且遇到了一个我无法找到解释的好奇心。该程序从一个文件中读取,该文件包含一个类似于以下格式的字谜列表:

#    anagram
#    anagram
#    anagram
.
.
.
etc

直接将它读入一个字符串,Python显然会将所有内容都注释掉,所以我正在尝试使用replace()来找到一种方法去除哈希字符。尝试...

string = file.read().replace('#', '')

...会产生一个空字符串。我试图在哈希面前使用反斜杠,但是愚蠢地拼错了正斜杠,这给了我结果:

string = file.read().replace('/#', '')
string = '#\tanagram\n#\tanagram\n#\tanagram'

在这一点上删除不必要的字符是明智的,程序运行完美。但是,我不满足于使用一些我不完全理解的代码。我没有太多运气找到解释/使我们这样的东西的任何文档或代码,所以我要么在错误的地方寻找或者寻找错误的东西。

有人可以解释为什么它会像这样吗?

2 个答案:

答案 0 :(得分:3)

试试这个:

[s.lstrip('#\t') for s in file.read().split('\n')]

Python不会以任何方式对字符串中的#进行特殊处理,您不需要将其转义。

答案 1 :(得分:0)

当您使用'#'替换'/#'时,您是否更改了其他内容?尝试再次运行您的程序,但要删除/#不是Python字符串中的特殊字符。

您向我们展示的代码在替换中没有任何操作,因为您的字符串中没有'/#'的任何实例。

示例交互式会话:

>>> "#foo bar\n\t#blah".replace("#", "")
'foo bar\n\tblah'