如何在检测空列表的嵌套列表时 return True?

How to return True when detecting a nested list of empty lists?

我在编写语句时试图 return True 值: list = [[],[],[],[]] list == [] 相反,它 returns False

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

您可以先删除所有空列表,然后检查结果是否为空列表,您可以在一行中执行此操作,如下所示:

[x for x in list if x != []] == []
all(x == [] for x in your_list)

到return如果全部为空则为真

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

至return 如果至少 on 不为空则为真

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

if l ==[] 或 list(set(l))==[[]]:

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

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

使用 any() 函数。

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

在 python 中,空列表的 bool 值为 False,如果列表中 none 的值为 True,则任何函数 returns False。

如果你确定你列表中的所有项目都是列表你可以直接使用any因为[]的真实值为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