知道是否有列表列表-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循环,并在遇到列表元素时立即终止算法