tkinter盡管有下面的代碼,字串在網格中列印時完全保持不變。我希望它洗掉disallowedCharacters. 關于字串如何更改,我一定有一些不明白的地方。請注意,這itemSeries是從另一個使用 Selenium 從 Web 獲取文本的函式傳遞給以下代碼的。
itemSeriesString = str(itemSeries)
disallowedCharacters = "()#1234567890"
for character in disallowedCharacters:
seriesName = itemSeriesString.replace(character, "")
itemSeriesLabel = Label(frame, text="Series:", font='time 12 bold')
itemSeriesLabel.grid(column=2, row=4, sticky='w', padx=10)
itemPrintSeries = Label(frame, text=seriesName)
itemPrintSeries.grid(column=3, row=4, sticky='e')
我嘗試轉義(,)和#字符,但它沒有改變任何東西。
uj5u.com熱心網友回復:
請記住,.replace()永遠不要修改原始字串;它回傳一個帶有操作結果的新字串。
在回圈的每次迭代中for,您都是:
- 取原件,未清洗
itemSeriesString - 從該原始字串中過濾掉一個字符的所有實體
- 將該過濾的結果分配給
seriesName.
您永遠不會累積替換操作的結果,因此大多數禁止字符將保留。
您應該在左側和右側使用相同的變數,以便您可以累積替換操作的結果:
disallowedCharacters = "()#1234567890"
seriesName = itemSeriesString
for character in disallowedCharacters:
seriesName = seriesName.replace(character, "")
或者,更好的是,只需使用以下方法過濾掉這些字符filter():
seriesName = ''.join(filter(lambda x: x not in disallowedCharacters, itemSeriesString))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/453971.html
