更多精彩內(nèi)容属瓣,請關(guān)注【力扣簡單題】普办。
在刷題或?qū)W習(xí)的過程中岛啸,熟練實用Python內(nèi)置函數(shù),可以幫助我們快速構(gòu)建所需功能派殷,這也是為什么很多任務(wù)對于python來說可以用一兩句話實現(xiàn)的还最,這種緊湊而高效的編碼方式值得我們深入學(xué)習(xí)以及在實際工作中廣泛應(yīng)用。
字符串常用方法
join方法
join方法可以將一個字符串列表(一個列表中所有元素均為字符串)連接起來毡惜,并用指定的分割符隔開拓轻。例如,將列表["張三", "李四", "王五"]用頓號“经伙、”連接成一個字符串:
>>> "扶叉、".join(["張三", "李四", "王五"])
>>> '張三、李四帕膜、王五'
列表推導(dǎo)式
列表推導(dǎo)式幫助我們構(gòu)建列表枣氧,只需要數(shù)組中各個元素存在一定關(guān)系。
例如泳叠,對列表[1, 2, 3, 4]中的每個元素求取平方并組成新的列表:
>>> [num * num for num in [1, 2, 3, 4]]
>>> [1, 4, 9, 16]
此外作瞄,我們還可以加入if語句對列表中的元素進行篩選,例如我們需要從0到9的所有偶數(shù):
>>> [num for num in range(10) if num % 2 == 0]
>>> [0, 2, 4, 6, 8]
這里給一個復(fù)雜一點的例子危纫,我們使用一句話構(gòu)建乘法口訣表:
>>> [' '.join(['{}*{}={}'.format(i, j, i*j) for i in range(1, j+1)]) for j in range(1, 10)]
>>>
['1*1=1',
'1*2=2 2*2=4',
'1*3=3 2*3=6 3*3=9',
'1*4=4 2*4=8 3*4=12 4*4=16',
'1*5=5 2*5=10 3*5=15 4*5=20 5*5=25',
'1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36',
'1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49',
'1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64',
'1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81']
lambda表達式
lambda表達式可以快速構(gòu)建函數(shù)宗挥,一句話實現(xiàn),非常便捷种蝶,例如我們實現(xiàn)一個平方函數(shù)契耿,實現(xiàn)對輸入數(shù)字計算平方:
>>> square = lambda x: x*x
>>> square(5)
>>> 25
其原理與以下函數(shù)完全一致:
def square(x):
return x*x
lambda表達式同樣支持多個輸入,例如我們構(gòu)建一個求和函數(shù)螃征,求兩個輸入數(shù)字的和:
>>> calculate_sum = lambda a, b: a+b
>>> calculate_sum(1, 2)
>>> 3
map映射
map映射將一個列表中的所有元素通過特定映射方式得到結(jié)果搪桂,并且返回結(jié)果列表,類似列表推導(dǎo)式的功能,該函數(shù)的輸入有兩個踢械,一個是映射關(guān)系酗电,也就是函數(shù),另一個是輸入列表内列,例如求取一個列表中所有數(shù)的平方撵术,除了用列表推導(dǎo)式以外,還可以這樣做:
>>> square = lambda x: x*x
>>> square_results = map(square, [1,2,3,4])
>>> list(square_results)
>>> [1, 4, 9, 16]
map結(jié)果需要轉(zhuǎn)換成list形式才可以顯示话瞧。
filter過濾器
filter過濾器可以快速過濾列表中所需要的元素嫩与,其輸入有兩個,一個是過濾條件函數(shù)交排,該函數(shù)返回值為布爾值划滋,另一個是列表,最終返回結(jié)果是列表中輸入過濾條件函數(shù)返回為True的元素埃篓,例如处坪,篩選出0到9中所有是偶數(shù)的數(shù)字組成新列表,出了使用列表推導(dǎo)式外都许,還可以這樣做:
>>> even_results = filter(lambda x: x % 2 == 0, list(range(10)))
>>> list(even_results)
>>> [0, 2, 4, 6, 8]
如有疑問或建議稻薇,歡迎評論區(qū)留言~