如何将多重嵌套列表附加到空列表中?
How to append a multiply nested list into and empty one?
我在书上看到过这段代码:
def print_loop(items):
for i in items:
if isinstance(i, list):
print_loop(i)
else:
print(i)
它的作用是打印出一个多重嵌套列表。适用于任何多层列表。
我想如果我们修改这个函数,让它简单地将多重嵌套列表附加到一个空列表中会怎么样。
以下是我的更改方式:
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]]]
并尝试使用我的函数,所有 return 都是 [1,2,3].
当您调用 append_loop(i)
时,这将返回一个扁平化的列表。您必须对此做一些事情,例如用它扩展 func_items
:
>>> 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
列表:
>>> 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]
我在书上看到过这段代码:
def print_loop(items):
for i in items:
if isinstance(i, list):
print_loop(i)
else:
print(i)
它的作用是打印出一个多重嵌套列表。适用于任何多层列表。
我想如果我们修改这个函数,让它简单地将多重嵌套列表附加到一个空列表中会怎么样。 以下是我的更改方式:
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]]]
并尝试使用我的函数,所有 return 都是 [1,2,3].
当您调用 append_loop(i)
时,这将返回一个扁平化的列表。您必须对此做一些事情,例如用它扩展 func_items
:
>>> 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
列表:
>>> 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]