如何在Python中获取列表中的元素数量?如何获得列表的大小?

2022-09-05 00:47:58

如何获取列表中的元素数?items

items = ["apple", "orange", "banana"]

# There are 3 items.

答案 1

len() 函数可以与 Python 中的几种不同类型一起使用 - 内置类型和库类型。例如:

>>> len([1, 2, 3])
3

答案 2

如何获得列表的大小?

要查找列表的大小,请使用内置函数:len

items = []
items.append("apple")
items.append("orange")
items.append("banana")

现在:

len(items)

返回 3。

解释

Python中的所有内容都是一个对象,包括列表。所有对象在 C 实现中都有某种类型的标头。

列表和其他在Python中具有“大小”的类似内置对象,特别是具有一个名为的属性,其中缓存对象中的元素数量。因此,检查列表中的对象数量非常快。ob_size

但是,如果您要检查列表大小是否为零,请不要使用 - 相反,将列表放在布尔上下文中 - 如果为空,则将其视为False,否则为Truelen

文档

len(s)

返回对象的长度(项数)。参数可以是序列(如字符串、字节、元组、列表或范围)或集合(如字典、集合或冻结集)。

len是使用 实现的,来自数据模型文档__len__

object.__len__(self)

调用以实现内置函数 。应返回对象的长度,即整数 >= 0。此外,未定义 [在 Python 2 或 Python 3 中] 方法且其方法返回零的对象在布尔上下文中被视为 false。len()__nonzero__()__bool__()__len__()

我们还可以看到,这是一种列表方法:__len__

items.__len__()

返回 3。

内置类型,您可以获得(长度)len

事实上,我们看到我们可以获得所有描述类型的此信息:

>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, 
                                            range, dict, set, frozenset))
True

不要用于测试空列表或非空列表len

当然,要测试特定的长度,只需测试相等性:

if len(items) == required_length:
    ...

但是有一个特殊情况可以测试零长度列表或逆向列表。在这种情况下,不要测试平等。

另外,不要做:

if len(items): 
    ...

相反,只需执行以下操作:

if items:     # Then we have some items, not empty!
    ...

if not items: # Then we have an empty list!
    ...

我在这里解释了为什么,但简而言之,或者既更具可读性又更高性能。if itemsif not items