python统计个数 - python统计数组中某元素个数




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

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

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

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


如何获得列表的大小?

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

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

现在:

len(items)

返回3。

来自docs

len(s)

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

len是从数据模型docs __len__实现的:

object.__len__(self)

被调用来实现内置函数len() 。 应该返回对象的长度,一个> = 0的整数。另外,一个没有在Python 2中定义__nonzero__() [或者Python 3中的__len__() ]并且其__len__()方法返回0的对象被认为是在布尔上下文中为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:
    ...

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


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

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

作为以前的例子回答你的问题:

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

print items.__len__()

虽然这可能不是有用的,因为它作为“开箱即用”功能会变得更有意义,但一个相当简单的窍门是构建一个具有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属性。

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





list