這篇文章主要介紹了python中map、any、all函數(shù)用法,實(shí)例分析了map、any、all函數(shù)的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了python中map、any、all函數(shù)用法。分享給大家供大家參考。具體分析如下:
最近想學(xué)python,就一直比較關(guān)注python,昨天在python吧看到有個(gè)帖子提問怎么在python中怎么判斷密碼是否符合規(guī)范,回帖中有很多用循環(huán)的,除此外還有一個(gè)沒有用循環(huán),代碼非常簡練,下面是代碼:
def volid(pwd):
a = any(map(str.isupper,pwd))
b = any(map(str.islower,pwd))
c = any(map(str.isdigit,pwd))
d = not all(map(str.isalnum,pwd))
return all([a,b,c,d])
這里的isupper islower isdigit isalnum 函數(shù)都很好理解,就是判斷是不是大寫,是不是小寫,是不是數(shù)字,是不是全是數(shù)字和字母(反過來就是判斷有沒有其他符號(hào)),而這里的map函數(shù)就是把后面那個(gè)集合的每個(gè)元素用第一個(gè)參數(shù)的函數(shù)執(zhí)行一遍,返回一個(gè)bool類型的集合,最外層的any和all函數(shù)就比較容易理解了,可以用“或”和“與”來理解,如果參數(shù)集合有一個(gè)為真,any函數(shù)就返回true,相當(dāng)于把所有元素“或”一下,只有當(dāng)參數(shù)集合全部為真,all函數(shù)才返回true,其他情況都是返回false ,所以如果volid函數(shù)傳入一個(gè)包含大寫小寫字母數(shù)字和特殊符號(hào)的字符串后,abcd就被賦值為true,最后return true,所以這個(gè)函數(shù)就可以判斷密碼夠復(fù)雜。
給自己留個(gè)問題吧,如果要求四項(xiàng)中只需要滿足兩項(xiàng),函數(shù)該怎么寫比較簡練。感興趣的朋友可以動(dòng)手實(shí)踐一下。
更多信息請(qǐng)查看IT技術(shù)專欄