检查List是否包含List作为元素

时间:2016-01-22 20:16:11

标签: python python-3.x

假设我有以下内容:

z = [3.0, 1.0, 0.2]

现在我想检查它是否包含列表。 我尝试过类似的东西:

if not isinstance(z[0], list):
    z = [z]
    print("Im no list")

如果是这样的话

z = [[3.0, 1.0, 0.2]]

然后if not isinstance(z[0], list):不应该触发,但确实如此。

如果列表包含另一个列表,有人可以给我一个如何检查的提示吗?

编辑:对于最初令人困惑的问题,我很抱歉。我已经得到了正确的答案,而且还贴在了下面。我没有注意,我的问题是由于我第一次有一个列表而后来是一个numpy数组的事实引起的。

3 个答案:

答案 0 :(得分:4)

这一行:

isinstance(scores[0], list)

将返回False。使用if not意味着if中的子句将成为真,因此正文将被执行。

z包含与list中的z = [[1, 2, 3]]时,由于isinstance调用返回Trueif not,它不会触发将其还原为False

为了有效地检查列表是否包含其他列表,请考虑使用any,如果它返回True,您知道它会:

>>> z = [1, 2, [3.0, 1.0, 0.2]]
>>> any(isinstance(i, list) for i in z)
True

答案 1 :(得分:0)

列出“lst”列表,这将打印出列表中的所有元素。

for i in lst:
    if isinstance(i, list):
      print(i, lst[i])

答案 2 :(得分:0)

for i in z:
    if type(i)==list:
        print("its a list")