\xa0
是不間斷空白符
我們通常所用的空格是 \x20
,是在標準ASCII可見字符 0x20~0x7e 範圍內。
而 \xa0
屬於 latin1 (ISO/IEC_8859-1)中的擴展字符集字符,代表空白符nbsp(non-breaking space)。
latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。
inputstring = u'\n Door:\xa0Novum \t '
move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))
output = inputstring.translate(move)
s = u'T-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0'
res = "".join(s.split())
知識點:
ord函數:
ord()函數是chr()函數(對於8位的ASCII字符串)或unichr()函數(對於Unicode對象)的配對函數,它以一個字符(長度爲1的字符串)作爲參數,返回對應的ASCII數值,或者Unicode數值,如果所給的Unicode字符超出了你的Python定義範圍,則會引發一個TypeError的異常。
fromkeys方法:
dict中的fromkeys方法目的是創建一個只有key的字典,內部利用for循環,使三個字符的asii碼值成爲可迭代對象(本來的整數是不可迭代的),分別對其迭代,存入字典。
translate方法:
Python translate() 方法根據參數table給出的表(包含 256 個字符)轉換字符串的字符, 要過濾掉的字符放到 del 參數中。接收到move返回的表(字典),之後對字符串進行替換。
split方法:
split不帶參數時,表示分割所有換行符、製表符、空格。分割後使用join合併所有切片