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

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

# There are 3 items.

当前回答

len()函数可以用于Python中的几种不同类型——内置类型和库类型。例如:

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

其他回答

按照前面给出的示例回答您的问题:

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

print items.__len__()

除了len之外,您还可以使用operator.length_hint(需要Python 3.4+)。对于普通列表,两者都是等效的,但length_hint可以获得列表迭代器的长度,这在某些情况下可能很有用:

>>> from operator import length_hint
>>> l = ["apple", "orange", "banana"]
>>> len(l)
3
>>> length_hint(l)
3

>>> list_iterator = iter(l)
>>> len(list_iterator)
TypeError: object of type 'list_iterator' has no len()
>>> length_hint(list_iterator)
3

但根据定义,length_hint只是一个“提示”,所以大多数时候len更好。

我看到了几个建议访问___ len__的答案。在处理像list这样的内置类时,这是可以的,但这可能会导致自定义类出现问题,因为len(和length_hint)实现了一些安全检查。例如,两者都不允许负长度或超过某个值(sys.maxsize值)的长度。因此,使用len函数而不是__len__方法总是更安全!

虽然这可能不太有用,因为它作为“开箱即用”功能更有意义,但一个相当简单的方法是构建一个具有长度属性的类:

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友好长度属性的额外好处。

一如既往,您的里程数可能会有所不同。

您可以使用len()函数来查找python中可迭代项的长度。

my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # OUTPUT: 5

len()函数还可以处理字符串:

my_string = "hello"
print(len(my_string))  # OUTPUT: 5

最后,len()可用于任何序列或集合(或定义__len__的任何大小的对象)。

python中有一个名为len()的内置函数,在这些情况下会有所帮助。

>>> a = [1,2,3,4,5,6]
>>> len(a)  # Here the len() function counts the number of items in the list.
6

这在字符串的情况下会稍微不同:它计算字符。

>>> a = "Hello"
>>> len(a)
5