30

有什么方法可以使用type(obj)-->来检测一个对象是否是 python 中的列表list

但是我们如何检测对象是否是表单列表的列表:

[['a','b']['a','b'][][]]
4

2 回答 2

47

用于isinstance()检查特定类型:

>>> isinstance([], list)
True

用于all()测试是否所有元素都属于某种类型:

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

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

于 2013-05-03T21:35:46.447 回答
4

如果您想确保列表中的每个项目都是一个列表,您可以执行以下操作:

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如果序列中的所有项目都是 ,则返回TrueFalse如果没有,它将返回True
于 2013-05-03T21:34:55.110 回答