2013-05-03 92 views

回答

3

如果你想确保列表中的所有产品的列表,你可以做什么像这样:

if all(isinstance(i, list) for i in lst): 
    # All of the items are lists 
  • isinstance(i, list)是写type(i) == type(list)type(i) == list)的更好的方法。
  • all()回报True如果所有序列中的项目是True。如果有任何不是True,它将返回False
+0

'type(i)== type(list)'newer works anyway。 :-P'type(i)is list'可以有一些优点;它测试* exact *类型(不允许使用子类)。 – 2013-05-03 21:41:14

43

isinstance()使用来检查特定类型:

>>> isinstance([], list) 
True 

使用all()以测试是否所有元件是某种类型的:

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

all()短路;如果任何测试返回False,则循环终止并返回False。只有除了一个元素都返回Trueall()需要检查迭代器的每个元素。

相关问题