我正在尝试编写一个函数,该函数def list_average(list_input)
接受诸如[1, 2, 3]
或的列表,[1,[2,[3]]]]
并返回列表中整数的平均值。但是,当我len([1,[2,[3]]]])
用来查找列表中的整数数时,它返回2。有人可以解释吗?
我的代码如下:
def list_average(list_input):
n = sumaverage(list_input)
count = len(list_input)
if count == 0:
return 0
average = n / count
return int(average)
len
仅返回顶级序列的长度。如果该序列中的元素碰巧也是序列,则不考虑。
>>> len([1,2,3]) # list of 3 ints
3
>>> len([[1,2],[3,4],[5,6]]) # list of 3 sub-lists
3
>>> len([1, [2,3], [[4,5,6], [7,8,9]]]) # list of mixed types, some are themselves lists
3
如果您追求的是诸如“我的列表中有多少个非列表元素”之类的内容,则可以进行诸如
def recursive_len(data):
if isinstance(data, list):
return sum(recursive_len(i) for i in data)
else:
return 1
>>> recursive_len([1,2,3])
3
>>> recursive_len([[1,2],[3,4],[5,6]])
6
>>> recursive_len([1, [2,3], [[4,5,6], [7,8,9]]])
9
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句