2009-08-13 29 views

Trả lời

15

Một cách là sử dụng all và một danh sách hiểu:

if all(e is None for e in myList): 
    print('all empty or None') 

này hoạt động cho các danh sách sản phẩm nào là tốt. Tổng quát hơn, để kiểm tra xem danh sách chỉ chứa những điều mà đánh giá để False, bạn có thể sử dụng any:

if not any(myList): 
    print('all empty or evaluating to False') 
+2

Nó phải là 'e là None'. – nikow

+0

Điều đó có lẽ hiệu quả hơn, vâng, nhưng sử dụng '==' không phải là * sai *. – Stephan202

+0

Lưu ý nhỏ: Liên kết đến tất cả thực sự là bất kỳ ... –

2

Nếu bạn quan tâm đến các yếu tố trong danh sách đánh giá là đúng:

if mylist and filter(None, mylist): 
    print "List is not empty and contains some true values" 
else: 
    print "Either list is empty, or it contains no true values" 

Nếu bạn muốn kiểm tra nghiêm ngặt cho None, sử dụng filter(lambda x: x is not None, mylist) thay vì filter(None, mylist) trong báo cáo if trên.

9

Bạn có thể sử dụng all() chức năng để kiểm tra là tất cả những yếu tố này là Không:

a = [] 
b = [None, None, None] 
all(e is None for e in a) # True 
all(e is None for e in b) # True 
4

Bạn có thể so sánh trực tiếp các danh sách với ==:

if x == [None,None,None]: 

if x == [1,2,3] 
Các vấn đề liên quan