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

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

# FAKE METHOD::
items.amount()  # Should return 3

我如何获得列表中的元素数量?


len()函数可以与Python中的很多类型一起使用 - 包括内置类型和库类型。

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

如何获得列表的大小?

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

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

现在:

len(items)

返回3。

来自文档

len(s)

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

len是从数据模型文档中的__len__实现的:

object.__len__(self)

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

我们也可以看到__len__是一个列表方法:

items.__len__()

返回3。

内建类型你可以得到len (长度)

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

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

不要将len用作条件的值

不要做:

if len(items): 
    ...

相反,请执行:

if items:
    ...

我解释了为什么在这里,但总之,它更具可读性和更高性能。


虽然这可能不是有用的,因为它作为“开箱即用”功能会变得更有意义,但一个相当简单的窍门是构建一个具有length属性的类:

class slist(list):
    @property
    def length(self):
        return len(self)

你可以像这样使用它:

>>> l = slist(range(10))
>>> l.length
10
>>> print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

基本上,它与列表对象完全相同,并且具有OOP友好的length属性。

一如往常,你的里程可能会有所不同

链接地址: http://www.djcxy.com/p/3131.html

上一篇: How to get the number of elements in a list in Python?

下一篇: Making a flat list out of list of lists in Python