Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
知道是否有列表列表-Python_Python_List - Fatal编程技术网

知道是否有列表列表-Python

知道是否有列表列表-Python,python,list,Python,List,假设我们有两个列表: A = [2, 3, [6, 7], 0] B = [4, 7, 10, 2] 我想将这些值输入如下函数: def gettype(self, a): for x in a: if isinstance(x, list): ident = True else: ident = False return ident 如果有列表列表,则返回True,否则返回false ident = gettype(A) print ident

假设我们有两个列表:

A = [2, 3, [6, 7], 0]
B = [4, 7, 10, 2]
我想将这些值输入如下函数:

def gettype(self, a):
 for x in a:
    if isinstance(x, list):
     ident = True
    else:
     ident = False
  return ident 
如果有列表列表,则返回True,否则返回false

ident = gettype(A)
print ident
True

ident = gettype(B)
print ident
False

PS:上面的函数不起作用,在这两种情况下都返回False

问题是您更改了列表中每个成员的ident值。所以事实上,只有当列表的最后一个元素是一个列表时,才会得到True

试试这个。如果列表中有列表,则返回True。如果到达列表末尾时未遇到列表,则返回False

def gettype(self, a):
 for x in a:
    if isinstance(x, list):
     return True
  return False

问题是您更改了列表中每个成员的ident值。所以事实上,只有当列表的最后一个元素是一个列表时,才会得到True

试试这个。如果列表中有列表,则返回True。如果到达列表末尾时未遇到列表,则返回False

def gettype(self, a):
 for x in a:
    if isinstance(x, list):
     return True
  return False

您正在迭代列表的所有元素。问题是您正在覆盖ident的值,并且由于列表的最后一个值是整数,因此函数返回False


当您找到列表元素的第一种情况时,必须返回True,就像其他答案中的其他实现一样。

您正在迭代列表的所有元素。问题是您正在覆盖ident的值,并且由于列表的最后一个值是整数,因此函数返回False

当您找到列表元素的第一个案例时,必须返回True,就像其他答案中的其他实现一样。

like

A = [2, 3, [6, 7], 0]
B = [4, 7, 10, 2]


def has_lists(lst):
    return any(isinstance(x, list) for x in lst)

print has_lists(A) # True
print has_lists(B) # False


代码的问题在于每次迭代都要更新ident,而A中的最后一个值不是列表,因此结果是错误的。以下是您可能想要的:

def gettype(self, a):
    for x in a:
        if isinstance(x, list):
            return True
    return False

请注意,return True语句会立即跳出for循环,并在遇到list元素时立即终止算法。

代码的问题在于每次迭代时都会更新ident,而a中的最后一个值不是list,因此会产生False结果。以下是您可能想要的:

def gettype(self, a):
    for x in a:
        if isinstance(x, list):
            return True
    return False
请注意,returntrue语句会立即跳出for循环,并在遇到列表元素时立即终止算法