2024-05-23 14:03:36 发布
网友
我有一份字典的清单。如果我需要检查所有的字典都是空的。我正在寻找一个简单的声明,将做到这一行。在
有没有单行方式来完成以下工作(不包括打印)?在
l = [{},{},{}] # this list is generated elsewhere... all_empty = True for i in l: if i: all_empty = False print all_empty
对python有点陌生。。。我不知道有没有内置的速记方式来检查这个。提前谢谢。在
在本例中,not any(d for d in l)可以缩短为not any(l)。在
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)“更想表达什么”,我强烈反对:即使在自然语言中,“列表中的所有项目都不被填充”并不比“列表中没有任何项目被填充”更正常、直接或清晰,超出了逻辑定律的绝对逻辑等价性,这两种表达方式非常接近,在人类心理方面也大致相当。在
在本例中,
not any(d for d in l)
可以缩短为not any(l)
。在{{{1}只适用于{cd2}运算符。短路行为也是等效的。在
编辑1:内部genexp实际上(无害但)冗余:
not any(l)
更快更简洁。在编辑2:一条评论声称
all(not d for d in l)
比not any(l)
“更想表达什么”,我强烈反对:即使在自然语言中,“列表中的所有项目都不被填充”并不比“列表中没有任何项目被填充”更正常、直接或清晰,超出了逻辑定律的绝对逻辑等价性,这两种表达方式非常接近,在人类心理方面也大致相当。在相关问题 更多 >
编程相关推荐