假设我有以下内容:
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数组的事实引起的。
答案 0 :(得分:4)
这一行:
isinstance(scores[0], list)
将返回False
。使用if not
意味着if
中的子句将成为真,因此正文将被执行。
当z
包含与list
中的z = [[1, 2, 3]]
时,由于isinstance
调用返回True
和if 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")