PYTHON flatten nested lists
list is the most frequently used data type in Python, and there are a wealth of functions available in the standard library.
However, if you convert a multi-dimensional list into a one-dimensional list (I don’t know if there is a lot of demand for this), it is really not easy to find a useful function.
I know that there are flatten among Ruby, Mathematica, and Groovy.
If the list has few dimensions and is regular, it is relatively easy to handle
For example:
li=[[1,2],[3,4],[5,6]] print [j for i in li for j in i] #or from itertools import chain print list(chain(*li)) #or a=[[1,2],[3,4],[5,6]] t=[] [t.extend(i) for i in a] print t #or print sum(li,[])
For more complex ones, such as: li=[1,[2],[[3]],[[4,[5],6]]], The above method is not easy to use, so we have to change it.
The structure looks like a tree, and it is easy to think of directory traversal, so we have the following method:
def flat(tree): res = [] for i in tree: if isinstance(i, list): res.extend(flat(i)) else: res.append(i) return res
Another way of thinking is that a nested list is nothing more than a lot of pairs of square brackets. A one-dimensional list only has one pair. Just remove the one in the middle and convert it to a string. Easy to handle
def flatten(seq): s=str(seq).replace('[', '').replace(']', '') #当然也可以用正则 return [eval(x) for x in s.split(',') if x.strip()]
However, this method cannot do anything when strings containing "[" or "]" appear in the list and needs to be improved.
Other methods:
I saw it on a foreign forum, it is also recursive, and it can be done in one line
flat=lambda L: sum(map(flat,L),[]) if isinstance(L,list) else [L]
The following one The method uses the Tkinter module and is the method seen on the mailing list. I guess many students don’t know that it can be done, and it can be said that it comes with Python. Note that the windows version of python comes with the Tkinter module, but Linux does not have it by default.
from Tkinter import _flatten li=reduce(lambda *x:list(x),range(2,6),[1]) print li print _flatten(li) #Out: #[[[[[1], 2], 3], 4], 5] #(1, 2, 3, 4, 5) #对元组同样适用
There are also some third-party modules that provide such functions, such as sympy, Numpy, pipe, etc.
For nested tuples, there is no need to say more, just make slight changes
The above simple implementation of PYTHON flattening nested lists is The editor has shared all the content with you. I hope it can give you a reference. I also hope that everyone will support the PHP Chinese website.
For more articles related to PYTHON flattening nested lists, please pay attention to the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

Regular expressions are powerful tools for pattern matching and text manipulation in programming, enhancing efficiency in text processing across various applications.

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

The article discusses popular Python libraries like NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow, Django, Flask, and Requests, detailing their uses in scientific computing, data analysis, visualization, machine learning, web development, and H

In Python, how to dynamically create an object through a string and call its methods? This is a common programming requirement, especially if it needs to be configured or run...
