count包含列表的元素数量,列表也包含列表

SQL*_*kie -4 python element list

>>> a = [1, 2, [3, 4], 5]
>>> print(len(a))
4
Run Code Online (Sandbox Code Playgroud)

列表的长度是4,为什么元素数为4而不是5?

Mar*_*ers 5

外部列表中的元素计数是4. a[2]一个对象.这里一个对象也是一个列表并不重要.

如果需要递归计算元素的数量,那么自己这样做:

def recursive_element_count(ob):
    if isinstance(ob, list):
        return sum(recursive_element_count(elem) for elem in ob)
    # anything that isn't a list counts as one element
    return 1
Run Code Online (Sandbox Code Playgroud)

演示:

>>> def recursive_element_count(ob):
...     if isinstance(ob, list):
...         return sum(recursive_element_count(elem) for elem in ob)
...     return 1
... 
>>> a = [1, 2, [3, 4], 5]
>>> recursive_element_count(a)
5
Run Code Online (Sandbox Code Playgroud)