当检测到空列表的嵌套列表时,如何返回True



在编写语句时,我试图返回True值:list = [[],[],[],[]]list == []相反,它返回错误

我的嵌套列表由数量可变的空列表组成。如何编写一个可以应用于[1/2/3…]空列表的嵌套列表的语句?

all(x == [] for x in your_list)

如果全部为空,则返回True

any(x != [] for x in your_list)

如果至少在非空上,则返回True

您可以先删除所有空列表,然后检查结果是否等于空列表,您可以在一行中完成如下操作:

[x for x in list if x != []] == []

您可以在python中使用all来匹配列表中所有元素的条件。在这种情况下,条件是元素是否为空列表。

>>> my_list = [[], [], []]
>>> all([x == [] for x in my_list])
True

如果您确定列表中的所有项目都是列表,则可以直接使用any,因为[]的truthy值为False

list_of_lists = [[],[],[],[]]
if not any(list_of_lists):
# all lists are empty (or list_of_lists itself is empty)

anyall的各种用途将允许您检查其他类似的条件:

if any(list_of_list):
# at least one of the list is not empty
if all(list_of_list):
# none of the lists are empty
if not all(list_of_list):
# at least one of the lists is empty

我不完全理解您的问题,但如果您想检测空列表或空列表的嵌套列表,请尝试只保留唯一元素(假设您的列表是l(

如果l==[]或列表(set(l((==[[]]:

使用any((函数。

list = [[], [], []]
any(list)  == bool([])  # evaluates to True

在python中,空列表的bool值为False,如果列表中没有值为True,则任何函数都返回False。

相关内容

  • 没有找到相关文章

最新更新