Python:检查列表中的所有字典是否为空

2024-05-23 14:03:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份字典的清单。如果我需要检查所有的字典都是空的。我正在寻找一个简单的声明,将做到这一行。在

有没有单行方式来完成以下工作(不包括打印)?在

l = [{},{},{}] # this list is generated elsewhere...
all_empty = True
for i in l:
  if i:
    all_empty = False

print all_empty

对python有点陌生。。。我不知道有没有内置的速记方式来检查这个。提前谢谢。在


Tags: intrue声明forif字典is方式
3条回答

在本例中,not any(d for d in l)可以缩短为not any(l)。在

all(not d for d in l)

{{{1}只适用于{cd2}运算符。短路行为也是等效的。在

编辑1:内部genexp实际上(无害但)冗余:not any(l)更快更简洁。在

编辑2:一条评论声称all(not d for d in l)not any(l)“更想表达什么”,我强烈反对:即使在自然语言中,“列表中的所有项目都不被填充”并不比“列表中没有任何项目被填充”更正常、直接或清晰,超出了逻辑定律的绝对逻辑等价性,这两种表达方式非常接近,在人类心理方面也大致相当。在

相关问题 更多 >