检查列表是否为空的最快方法是什么?在什么情况下,一种方法优于另一种方法?

2024-04-27 04:00:34 发布

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

我想知道检查列表是否为空的最佳方法是什么

我知道这个问题看起来很傻,但我意识到有时候当你和其他人一起工作,其他人阅读你的代码时,使用某些函数可能比其他函数看起来更好,并且对于来自不同编程语言的人来说更容易理解

假设我有一张清单:

names = ["Bob", "Billy", "Samuel", "Adam", "Rob"]

这是检查列表是否为空的一种方法:

is_empty = bool(names)

这是另一个:

is_empty = any(names)

我知道any函数检查列表中是否至少有1个真值。 检查列表是否为空的最佳和最快捷的方法是什么?在哪种情况下,哪种看起来最好?有没有我不知道的更快的方法


Tags: 方法函数代码列表namesisany编程语言
1条回答
网友
1楼 · 发布于 2024-04-27 04:00:34

使用列表的隐式布尔方法最简单:
^如果mylist有内容,{}将分支True,如果mylist为空,则分支False。在documentation中,空列表被视为False,因为在布尔求值中调用了默认的__len__()方法,并且它等于零。这是评估它的最简单和最快的方法,尽管在力学上与if len(mylist) == 0:相同。这同样适用于字符串、元组、列表、字典、集合和range()

编辑:对于给定的示例之一,@Carcigenicate指出,any()将在选择的情况下失败,如果目标纯粹是检查列表是否为空any()将返回False“如果列表为非空且仅包含虚假元素。”
例如,any([False, 0])将返回False,尽管列表包含两个对象

相关问题 更多 >