gpt4 book ai didi

python - 如何计算列表中元素的数量?

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:05 24 4
gpt4 key购买 nike

我需要编写一个 python 函数来计算列表中的所有元素,包括嵌套列表中的那些元素。

例如,len() 是内置函数,at_len() 是我要创建的函数:

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

at_len( [1, 2] ) ---> 2

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

at_len( [ [1, 2], 3 ] ) ---> 3

len( [1, 2, 'three', [1, 2, 3, ['a', 'b'] ], 5] ) --> 5

at_len( [1, 2, 'three', [1, 2, 3, ['a', 'b'] ], 5] ) --> 9

我需要能够计算嵌套列表中的那些元素。这是我拥有的代码,以及我得到的输出。

def at_len(element_list):
count = 0
for each_item in element_list:
if isinstance(each_item, list):
at_len(each_item)
else:
count = count + 1
print(count)

输出:

at_len(['hello',1,2,'three',[1,'two',3]]) --> 3, 4 (should be 7)

at_len([1,2,[1,2,3]]) --> 3, 2 (should be 5)

我想我很接近,但出于某种原因,它打印出两个计数,而不是将它们加在一起以获得正确的总数。

最佳答案

at_len(each_item)替换为count += at_len(each_item),然后返回count(而不是打印)。

由于递归调用,它打印了两次。打印命令在函数内。还要注意 total 被赋予了一个值但从未使用过。而是按照

def at_len(element_list):
count = 0
for each_item in element_list:
if isinstance(each_item, list):
count += at_len(each_item)
else:
count += 1
return count

然后将其命名为:

print(at_len(yourlist))

关于python - 如何计算列表中元素的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27955064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com