`
GhostFromheaven
  • 浏览: 396991 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Python如何拉平(flatten)嵌套列表(nested list)

 
阅读更多

有时候会用到嵌套的列表(list),比如

[1, 2, [3, 4, [5, 6]], ["abc", "def"]]

 如果将嵌套的列表拉平(flatten)呢?变成:

[1, 2, 3, 4, 5, 6, "abc", "def"]

 方法有很多,目前了解到的各方面都比较好,也很pythonic的方法是:

def flatten(l):
	for el in l:
		if hasattr(el, "__iter__") and not isinstance(el, basestring):
			for sub in flatten(el):
				yield sub
		else:
			yield el

 

 

l = [1, 2, [3, 4, [5, 6]], ["abc", "def"]]
l2 = [x for x in flatten(l)]
print l2
#[1, 2, 3, 4, 5, 6, "abc", "def"]

 

 

 

 

 

分享到:
评论

相关推荐

    PYTHON压平嵌套列表的简单实现

    在Python编程中,处理嵌套列表是一个常见的任务,特别是在数据处理和分析中。嵌套列表是由列表组成的列表,其中每个元素可能是一个单独的值或另一个列表。本文将介绍几种简单的Python方法来压平(扁平化)这些嵌套...

    Python嵌套列表转一维的方法(压平嵌套列表)

    在Python编程中,处理数据时经常会遇到嵌套列表的情况,特别是在进行数据分析或处理多层结构的数据时。嵌套列表指的是列表中的元素也是列表,形成一个多级的结构。然而,在某些场景下,我们需要将这些嵌套的列表转换...

    PyPI 官网下载 | nestedListFix-1.3.0.tar.gz

    1. **修复嵌套列表**:nestedListFix提供了一些方法,如`flatten`和`unflatten`,用于将多层次的嵌套列表展开为一维列表,或者反过来将一维列表重新组合成多层结构。这对于数据处理和存储非常有用。 2. **数据整理*...

    PyPI 官网下载 | nestedlisttoflat-0.1.2-py3-none-any.whl

    在Python中,`nestedlisttoflat`这个名字暗示了该库可能专注于处理嵌套列表,即列表中包含其他列表的数据结构。这种数据结构常用于处理层次化或树形数据。库的功能可能是将这些复杂的嵌套列表转换为扁平化的单层列表...

    python实现将读入的多维list转为一维list的方法

    在Python编程中,处理数据时经常需要将多维列表(nested list)转换为一维列表,以便于进一步的处理和分析。本篇文章将介绍三种不同的方法来实现这一转换,这些方法对于理解Python列表操作以及数据处理非常有帮助。 ...

    NestedFetch:受 XPath 启发的语法糖从嵌套字典和嵌套列表中获取、设置、更新和 FLATTEN 值

    在Python编程中,处理嵌套的数据结构,如嵌套字典和嵌套列表,往往是一项挑战。`NestedFetch`是一个库,它引入了一种XPath启发式的语法糖,使得从这样的复杂数据结构中提取、设置、更新和扁平化值变得更加简单。这个...

    Python 开发者常用的30个极简Python代码

    14. **展开列表**:递归函数可以展开嵌套列表。 ```python def flatten(lst): return [item for sublist in lst for item in (flatten(sublist) if isinstance(sublist, list) else [sublist])] ``` 15. **列表的...

    javalruleetcode-leetcode-python:leetcode问题的Python解决方案

    用一个stack存,对每一个nestedlist进行开苞,用递归或者while循环判断是否第一个element 的isInteger()是否是True. 4.10 812题. Largest Triangle Area.数学问题,已知三点求三角形面积,公式为Helen Equation,不用...

    LeetCode最全代码

    * [Linked List](https://github.com/kamyu104/LeetCode#linked-list) * [Stack](https://github.com/kamyu104/LeetCode#stack) * [Queue](https://github.com/kamyu104/LeetCode#queue) * [Heap]...

    Lerner -- Python Workout. 50 Essential Exercises -- 2020.pdf

    - **Objective:** Flatten a nested list into a single list. - **Key Concepts:** - Recursive functions for flattening lists. - Iterating over elements and checking types. 31. **Pig Latin ...

    Python 中迭代器与生成器实例详解

    flat_list = list(flatten(nested_list)) print(flat_list) # 输出 [1, 2, 3, 4, 5, 6, 7] ``` ### 总结 本篇文章详细介绍了 Python 中迭代器与生成器的应用场景及其实现方法。通过具体的示例和测试案例,我们了解...

Global site tag (gtag.js) - Google Analytics