在编写语句时,我试图返回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)
any
和all
的各种用途将允许您检查其他类似的条件:
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。