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

新手上路,请多包涵

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

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

# There are 3 items.

原文由 y2k 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 793
2 个回答

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

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

原文由 gnud 发布,翻译遵循 CC BY-SA 4.0 许可协议

我如何获得列表的长度?

要查找列表中的元素数,请使用内置函数 len

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

现在:

 len(items)

返回 3。

解释

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

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

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

文档

len(s)

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

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

object.__len__(self)

调用以实现内置函数 len() 。应该返回对象的长度,一个 >= 0 的整数。此外,一个对象没有定义 __nonzero__() [在 Python 2 中或 __bool__() 在 Python 3 中] 方法和它的 __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 更具可读性和更高性能。

原文由 Russia Must Remove Putin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题