我一直在研究 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 - Python中的正斜杠replace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227373/