簡體   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