Python3內置函數——all與any


先祭出英文文檔:

all (iterable)

Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to:

def all(iterable): for element in iterable: if not element: return False return True 
any (iterable)

Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to:

def any(iterable): for element in iterable: if element: return True return False 

 

再上函數信息表格

函數原型

all(iterable)

參數解釋

iterable

可迭代對象,參數不可為空,但iterable可空。

返回值

<class 'bool'> True 或 False。

函數說明

當 iterable 中所有元素都為 True 時(或者 iterable 為空),返回 True 。

 

函數原型

any(iterable)

參數解釋

iterable

可迭代對象,參數不可為空,但iterable可空。

返回值

<class 'bool'> True 或 False。

函數說明

當 iterable 中有元素為 True 時,則返回 True 。如果當 iterable 為空時,返回 False 。

 

從官方文檔中,我們可以得知,all(iterable)完全與下面這段代碼等價:

1 def all(iterable):
2     for element in iterable:
3         if not element:
4             return False
5     return True

 

 any(iterable)則與這段代碼等價:

1 def any(iterable):
2     for element in iterable:
3         if element:
4             return True
5     return False

 

也就是說,當給定一個不為空的可迭代對象之后:

  對於all函數,如果元素全為真則返回True,否則返回。即只要存在的元素就返回

  對於any函數,只要存在一個為的元素就返回True。不存在為的元素返回假。

另外,當可迭代對象為時,all函數返回Trueany函數返回False。這是因為iterable為空時遍歷不執行,直接跳到 line 5 執行 return。

 

范例1:all函數各種參數的各種結果

1 >>> all(['a',(2,4),1,True])     #list都為真
2 True
3 >>> all(['a',(),1,True])        #list元素中有空tuple
4 False
5 >>> all(['a',(2,4),0,True])     #有0
6 False
7 >>> all(['a',(2,4),3,False])    #有False
8 False

 

范例2:any函數各種參數的各種結果

 1 >>> any(['a',(2,4),3,True]) 
 2 True
 3 >>> any(['a',(2,4),3,False])
 4 True
 5 >>> any(['a',(),3,False])   
 6 True
 7 >>> any(['',(),0,False]) 
 8 False
 9 >>> any(('a',(),3,False))
10 True
11 >>> any(('',(),0,False)) 
12 False

 

范例3:all函數參數為空與iterable為空時

 1 >>> all()
 2 Traceback (most recent call last):
 3   File "<pyshell#20>", line 1, in <module>
 4     all()
 5 TypeError: all() takes exactly one argument (0 given)
 6 >>>all([])
 7 True 
 8 >>> all(())
 9 True
10 >>> all({})
11 True
12 >>> all('')                    #空list、truple、dict、str皆為True
13 True

 

范例4:any函數參數為空與iterable為空時

 1 >>> any()
 2 Traceback (most recent call last):
 3   File "<pyshell#37>", line 1, in <module>
 4     any()
 5 TypeError: any() takes exactly one argument (0 given)
 6 >>> any([])
 7 False
 8 >>> any(())
 9 False
10 >>> any({})
11 False
12 >>> any("")
13 False

 

范例5:iterable為空時不遍歷

1 >>> p=1
2 >>> i=[]
3 >>> for item in i:            #i為空不遍歷
4     print (p)
5 
6 
7 >>>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM