为什么len([1,[2,[3]]]])返回2,而len([1,[2]])也返回2?

李伟业

我正在尝试编写一个函数,该函数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)
科里·克莱默(Cory Kramer)

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么`“%,2,%”之类的“,1,2,3,”`返回零?

为什么`minimum(1,2)`在Haskell中返回2?

为什么JavaScript数组操作[1,2,3,4] [1,2]返回3?

为什么Julia>(1,2,3)返回(1,2,0)

为什么 a[1:-1:-1] 和 a=[1,2,3] 返回 []?

为什么Math.min([1,2])返回NaN?

为什么1 && 2返回2?

在Javascript中,为什么Object.getPrototypeOf([1,2])返回一个空列表?

python any() 的工作方式不同,为什么 [1,3,5] 中的 any([1,2]) 返回 True 而 ['a','v' 中的 any(['a','b']) 不返回, 'X']?

为什么3> 2> 1返回false,而1 <2 <3返回true?

为什么null不in(1,2,3)为false

Javascript函数Challenge add(1,2)和add(1)(2)都应返回3

为什么x in(1,2,3):比x == 1或x == 2或x == 3快?

为什么1&1 === 1返回true,而2&2 === 2返回false?

为什么“ www” .count(“ ww”)返回1而不返回2?

为什么1 =='1,2'为真?

Scala:为什么foo(1,2)和foo((1,2))相同?

对于np.array([1,2,3]),为什么形状是(3,)而不是(3,1)?

pow(sqrt(-1),2)为什么不返回-1?

为什么在JavaScript中[1,2] + [3,4] =“ 1,23,4”?

为什么布尔表达式“(1,2,3)== True中的1”为False?

为什么两种情况下的行为不同1。int i = 1,2,3; 和第二。我 i = 1,2,3;

为什么random.randint(1,2 ** n-1)返回n位长的整数,而不仅仅是整数本身?

为什么[1,1,2] | [] == [1,2]在Ruby中是否为true?

-1 返回 (len(splits) - 1)?

在Array(3)与[1,2,3]之间映射常量函数:为什么它们不同

在 sql 中将值从 ('1,2,3') 拆分为 ('1','2','3') 或 (1,2,3)

为什么长度为2的元组返回1,而长度为2的元组却返回错误?

为什么isinstance([1,2,3],List [str])评估为true?