2013-05-03 93 views

Trả lời

3

Nếu bạn muốn chắc chắn rằng mỗi mục trong danh sách của bạn là một danh sách, bạn có thể làm điều gì đó như thế này:

if all(isinstance(i, list) for i in lst): 
    # All of the items are lists 
  • isinstance(i, list) là cách tốt hơn để viết type(i) == type(list) hoặc type(i) == list).
  • all() trả về True nếu tất cả các mục trong chuỗi là True. Nó sẽ trả về False nếu có không phải là True.
+0

'loại (i) == loại (danh sách)' các tác vụ mới hơn. :-P 'type (i) là danh sách' có thể có một số thành tích; nó kiểm tra kiểu * chính xác * (không cho phép các lớp con). –

43

Sử dụng isinstance() để kiểm tra một loại hình cụ thể:

>>> isinstance([], list) 
True 

Sử dụng all() để kiểm tra nếu tất cả yếu tố này là của một loại nhất định:

all(isinstance(elem, list) for elem in list_of_lists) 

all() ngắn mạch; nếu bất kỳ thử nghiệm nào trả về False, vòng lặp bị chấm dứt và False được trả về. Chỉ khi tất cả trừ một phần tử trả về True thì all() cần phải kiểm tra mọi phần tử của phép lặp.

Các vấn đề liên quan