首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何修复我的循环,以便能够计算列表的元素和列表的元素是列表

如何修复我的循环,以便能够计算列表的元素和列表的元素是列表
EN

Stack Overflow用户
提问于 2019-05-09 03:09:15
回答 3查看 44关注 0票数 0

我正在尝试计算列表中元素的数量,包括列表列表中的元素。

以下是我的代码

代码语言:javascript
复制
my_list = [1,[2,3],[4,5,6]]
sum = 0
for x in my_list:
    for i in mylist:
        sum = sum+1
print(sum)
EN

回答 3

Stack Overflow用户

发布于 2019-05-09 03:14:51

在这里,go...you需要检查数据类型:

代码语言:javascript
复制
my_list = [1,[2,3],[4,5,6]]
sum = 0
for x in my_list:
    if type(x) == list:
        sum += len(x)
    else:
        sum += 1
print(sum)
票数 1
EN

Stack Overflow用户

发布于 2019-05-09 03:16:03

代码语言:javascript
复制
my_list = [1,[2,3],[4,5,6]]
print(sum(len(x) if isinstance(x, list) else 1 for x in my_list))
票数 1
EN

Stack Overflow用户

发布于 2019-05-09 03:17:41

最需要注意的是,您的my_list包含不同类型的值。例如,(list,int)。因此,您需要进行类型检查。

要处理嵌套列表,您需要创建一个递归函数。

使用python 3.6+的示例

代码语言:javascript
复制
def sum_mylist(my_list: list) -> int:
    total = 0
    for i in my_list:
        if isinstance(i, list):
            total += sum_mylist(i)
        if isinstance(i, int):
            total += i
    return total


def main():
    my_list = [1,[2,3,4], 5, [4,5,6], [1, [2,3,4]]]
    total = sum_mylist(my_list)
    print(total) // prints 40
main()

根据@ShadowRanger评论更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56047506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档