首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多个嵌套列表附加到和空列表中?

如何将多个嵌套列表附加到和空列表中?
EN

Stack Overflow用户
提问于 2015-01-07 10:58:44
回答 1查看 54关注 0票数 0

我在一本书中见过这样的代码:

代码语言:javascript
复制
def print_loop(items):
    for i in items: 
        if isinstance(i, list):
            print_loop(i)
        else:
            print(i)

它所做的就是打印一个多嵌套列表。任何多层列表都能很好地工作。

我想,如果我们修改这个函数,让它简单地将乘法嵌套列表附加到一个空列表中,会怎么样?以下是我是如何改变它的:

代码语言:javascript
复制
def append_loop(items):
    func_items = []

    for i in items: 
        if isinstance(i, list):
            append_loop(i)
        else:
            func_items.append(i)
    return func_items

如果我有一个类似于:items = [1,2,3 [4,5, [6,7]]]的列表,并尝试使用我的函数,那么它只返回1,2,3。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-07 11:03:41

当您调用append_loop(i)时,这将返回一个扁平列表。您必须对此做一些事情,例如用它扩展func_items

代码语言:javascript
复制
>>> def append_loop(items):
...   func_items = []
...   for i in items:
...       if isinstance(i, list):
...           func_items.extend(append_loop(i))
...       else:
...           func_items.append(i)
...   return func_items
...
>>> append_loop([1,2,[3,[4,5]]])
[1, 2, 3, 4, 5]

否则,可以使用global列表:

代码语言:javascript
复制
>>> global_func_items = []
>>> def append_loop2(items):
...   for i in items:
...       if isinstance(i, list):
...           append_loop2(i)
...       else:
...           global_func_items.append(i)
...
>>> append_loop2([1,2,[3,[4,5]]])
>>> print global_func_items
[1, 2, 3, 4, 5]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27817913

复制
相关文章

相似问题

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