使用 Python 展平嵌套列表

Beginner

This tutorial is from open-source community. Access the source code

简介

在 Python 中,列表(list)可以包含其他列表作为元素。有时,我们需要将一个列表展平,即将一个嵌套列表转换为一个包含原始列表所有元素的单一列表。一种实现方法是使用展开运算符。在这个挑战中,你将被要求实现一个使用展开运算符展平列表的函数。

展开列表

编写一个名为 spread(arg) 的函数,该函数接受一个列表作为参数,并返回一个新列表,其中包含原始列表展平后的所有元素。如果原始列表的某个元素本身也是一个列表,则其元素应逐个添加到新列表中。该函数不应修改原始列表。

要实现此函数,你应该遍历原始列表的元素,并使用展开运算符将元素添加到新列表中。如果某个元素是列表,则应使用 extend() 方法将其元素添加到新列表中。如果某个元素不是列表,则应使用 append() 方法将其添加到新列表中。

def spread(arg):
  ret = []
  for i in arg:
    ret.extend(i) if isinstance(i, list) else ret.append(i)
  return ret
spread([1, 2, 3, [4, 5, 6], [7], 8, 9]) ## [1, 2, 3, 4, 5, 6, 7, 8, 9]

总结

在这个挑战中,你已经学会了如何在 Python 中使用展开运算符来展平列表。你还实现了一个函数,该函数接受一个列表作为参数,并返回一个新列表,其中包含原始列表展平后的所有元素。在处理 Python 中的嵌套列表时,这是一项很有用的技术。