1 9 簡化字串的translate方法的使用

2021-07-04 23:52:46 字數 967 閱讀 5435

def line_conf():

def line(x):

return 2*x+1

return line #返回的是乙個函式物件

t = line_conf()

print t(4)#結果是9

函式閉包常用於裝飾器,作用是為了避免頻繁修改函式

def  translator(frm = '', to = '', delete = '', keep = none):

if len(to) == 1:

to = to * len(frm)

trans = string.maketrans(frm, to)

if keep is not none:

allchars = string.maketrans('','') #設定乙個轉換列表

delete = allchars.translate(allchars, keep.translate(allchars, delete))

def translate(s):

return s.translate(trans, delete)

return translate

digits_only = translator(keep=string.digits)

print digits_only('cardnum = 10330303303030')

digits_only = translator(delete=string.digits)

print digits_only('cardnum = 10330303303030')

delete = allchars.translate(allchars, keep.translate(allchars, delete)) 看的不是太明白

封裝後的方法可以直接使用

挑戰字串 簡化路徑

以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑 ...

微軟演算法面試 19 左旋字串

題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。例如把字串 abcdef 左旋2位 得到字串 cdefab 請實現字串左旋轉的函式。要求時間對長度n的字串操作的複雜度位o n 輔助記憶體為o 1 分析 這題的難點是輔助記憶體只能只用o 1 相當於只能進行字串中字元的替換操作,如果...

GUID 字串,16位字串,19位數字

當我們想要獲得乙個唯一的key的時候,通常會想到guid。這個key非常的長,雖然我們在很多情況下這並不是個問題。但是當我們需要將這個36個字元的字串放在url中時,會使的url非常的醜陋。想要縮短guid的長度而不犧牲它的唯一性是不可能的,但是如果我們能夠接受乙個16位的字串的話是可以做出這個犧牲...