2013-05-03 16 views

Odpowiedz

3

Jeśli chcesz się upewnić, że każdy pozycja na liście znajduje się lista, można zrobić coś tak:

if all(isinstance(i, list) for i in lst): 
    # All of the items are lists 
  • isinstance(i, list) jest lepszy sposób pisania type(i) == type(list) lub type(i) == list).
  • all() zwraca True, jeśli wszystkie pozycje w sekwencji to True. To zwróci False, jeśli nie są one True.
+0

'type (i) == type (list)' nowsze działa mimo to. :-P 'type (i) is list' może mieć pewne zalety; testuje dla * dokładnego * typu (bez podklas). –

43

Zastosowanie isinstance() celu sprawdzenia konkretnego typu:

>>> isinstance([], list) 
True 

użytkowania all() aby sprawdzić, czy wszystkie elementy są pewnego rodzaju:

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

all() zwarć; jeśli którykolwiek z testów zwróci False, pętla zostanie zakończona i zostanie zwrócona False. Tylko jeśli wszystkie elementy oprócz jednego zwracają True, trzeba all() przeanalizować każdy element iteracji.

Powiązane problemy