繁体   English   中英

Python replace()中的正斜杠

[英]Forward slash in Python replace()

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

#    anagram
#    anagram
#    anagram
.
.
.
etc

将其直接读入字符串后,Python显然会将所有内容注释掉,所以我在玩replace()尝试寻找一种去除哈希字符的方法。 试...

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

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

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

去除不必要的字符在那时是不费吹灰之力的,该程序可以完美运行。 但是,我不满意使用我不完全理解的代码行。 我没有太多运气找到能解释/使我们有类似结果的文档或代码,所以我要么在错误的地方寻找东西,要么在寻找错误的东西。

谁能解释为什么会这样?

尝试这个:

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

Python不会在字符串内以任何方式特别处理#,您无需对其进行转义。

当您将'#'替换为'/#'时,您是否进行了其他更改? 尝试完全按照原样再次运行程序,但删除/ #不是Python字符串中的特殊字符。

您显示给我们的代码在替换中没有做任何事情,因为您的字符串中没有任何'/#'实例。

互动会话示例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM