Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用也包含列表的列表计算元素数_Python_List_Element - Fatal编程技术网

Python 使用也包含列表的列表计算元素数

Python 使用也包含列表的列表计算元素数,python,list,element,Python,List,Element,列表的长度是4,为什么元素计数是4而不是5?外部列表中的元素计数是4一个[2]是一个对象。在这里,一个对象也是一个列表并不重要 如果需要递归计算元素的数量,请自己进行计算: >>> a = [1, 2, [3, 4], 5] >>> print(len(a)) 4 演示: 由于内部列表假定为一个对象,len返回4。可以使用以下代码计算所有图元的长度: >>> def recursive_element_count(ob): ...

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

外部列表中的元素计数是4<代码>一个[2]是一个对象。在这里,一个对象也是一个列表并不重要

如果需要递归计算元素的数量,请自己进行计算:

>>> a = [1, 2, [3, 4], 5]
>>> print(len(a))
4
演示:


由于内部列表假定为一个对象,
len
返回4。可以使用以下代码计算所有图元的长度:

>>> 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

isinstance()
用于检查对象类型的函数

你知道数学中的集合吗?这与Python中的列表、元组集等类似。如果列表中有一个列表,或者元组中有一个元组,那么它们就是一个元素

>>> a = [1, 2, [3, 4], 5]
>>> sum(len(i) if isinstance(i,list) else 1 for i in a)
5
输出:

a=[1,2,3]
b=[2,3]
a.append(b)
print (a)
print (len(a))

那是因为len(a)=4。[2,3]是
列表(a)

@nbro的一个元素,无需mean@meda
平均值
?谁没听说过开玩笑吗?如果我不是,我总是开玩笑。我们在学习一些新东西时都是这样想的。@Python\u菜鸟:nbro是一个巨魔,不要理会那些评论。我已经标记了它们,它们在这里是不可接受的。请看@nbro,也许是您的初级课程。如果是重复问题,请发布重复问题的链接。这比问某人是否10岁等更有帮助。。。不管怎样,这就是我要说的。节日快乐。:)@MartijnPieters是的,当然,我们可以用一个递归函数来实现另一个杠杆。@MartijnPieters为什么在最后添加
return 1
?@AvinashRaj:因为每个非列表元素都计为1项。
a=[1,2,3]
b=[2,3]
a.append(b)
print (a)
print (len(a))
>>> 
[1, 2, 3, [2, 3]]
4
>>>