您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python中利用all()來優化減少判斷的方法”,在日常操作中,相信很多人在Python中利用all()來優化減少判斷的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中利用all()來優化減少判斷的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
如果我有個list,想判斷其中的元素是否滿一個條件,后面的元素大于或等于前面元素。Python中的寫法就比較多了。下面就主要介紹下一般的寫法和通過all()來進行比較的寫法。
nums=[1,2,3,3,5,6,6,7]
1、一般寫法
def checker(nums): for x in range(len(nums)): if x+1 < len(nums): if nums[x] > nums[x+1]: return False return True
2、使用all()和zip()的寫法
def checker(nums): return all(i <= j for i, j in zip(nums, nums[1:])) #如果不想為zip的第二個參數創建個list,可以這樣寫 from itertools import islice def checker(nums): return all(i <= j for i, j in zip(nums, islice(nums, 1, None)))
解釋說明:
all():函數用于判斷給定的可迭代參數 iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。
zip():是函數用于將可迭代對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的對象。
1)python2中zip()的使用:
>>>a = [1,2,3] #此處可迭代對象為列表 >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 打包為元組的列表 >>> zipped [(1, 4), (2, 5), (3, 6)] >>> zip(a,c) # 元素個數與最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> zip(*zipped) # 與 zip 相反,可理解為解壓 [(1, 2, 3), (4, 5, 6)]
2)python3中zip()的使用:
>>> a = [1,2,3] #此處可迭代對象為列表 >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) >>> zipped #返回的是一個對象 >>> list(zipped) [(1, 4), (2, 5), (3, 6)] #使用list()函數轉換為列表 >>> list(zip(a,c)) [(1, 4), (2, 5), (3, 6)] >>> zipped = zip(a,b) >>> list(zip(*zipped)) #解壓也使用list進行轉換 [(1, 2, 3), (4, 5, 6)]
到此,關于“Python中利用all()來優化減少判斷的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。