如何在Python中展平浅层列表?
展平浅层列表意味着将嵌套列表转换为简单的单维度列表。换句话说,就是将多维列表转换为一维列表。
展平过程可以使用不同的技术来执行,例如嵌套 for 循环、列表推导式、列表连接以及使用内置函数。
在本文中,我们将讨论几种展平 Python 浅层列表的技术。
使用嵌套 for 循环
通过使用嵌套 for 循环和 list.append() 方法,我们可以展平浅层列表。让我们来看一下如何在程序中完成此操作。
示例
这个简单的示例通过使用嵌套 for 循环成功地展平了一个浅层列表。第一个循环用于迭代列表中的子列表,第二个循环用于迭代子列表中的项目。
li = [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]]
print("Original shallow list:", li)
flatlist = []
for sub_li in li:
for ele in sub_li:
flatlist.append(ele)
print("After flattening :", flatlist)
输出
Original shallow list: [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]] After flattening : [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
使用列表推导式
此技术与嵌套 for 循环非常相似,就像上面的解决方案一样,使用列表推导式打包成一行。
列表推导式是一种简单而优雅的基于现有可迭代对象(列表、字符串、元组)创建列表的方法。
语法
newList = [ expression(element) for element in oldList if condition ]
示例
我们使用列表推导式方法在一行代码中展平了一个浅层列表。
li = [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]]
print("Original shallow list:", li)
flatlist = [ele for ele in sub_li for sub_li in li]
print("List after flattening :", flatlist)
输出
Original shallow list: [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]] List after flattening : [90, 90, 90, 100, 100, 100, 110, 110, 110, 120, 120, 120]
使用 itertools (chain())
chain() 方法接受一系列可迭代对象,然后返回一个单一的可迭代对象,该对象不能直接使用,必须显式转换。要访问 chain() 方法,我们需要先将 itertools 模块导入到我们的程序中。
语法
chain (*iterables)
示例
为了解包嵌套列表,我们使用了 * 运算符。
import itertools
li = [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]]
print("Original shallow list:", li)
flatlist = list(itertools.chain(*li))
print("List after flattening :", flatlist)
输出
Original shallow list: [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]] List after flattening : [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
使用 sum() 函数
对内部列表(子列表)求和是另一种解决方案。在这里,我们将使用 Python 内置函数 sum()。
语法
sum(iterable, start)
示例
在这个示例中,参数 iterable 接受一个列表的列表,start 是一个空列表,作为初始扁平列表,内部子列表的项目将添加到其中。
li = [[1, 2, 3, 4], [5, 6, 7], [8, 9]]
print("Original shallow list:", li)
faltlist = sum(li, [])
print("List after flattening :", faltlist)
输出
Original shallow list: [[1, 2, 3, 4], [5, 6, 7], [8, 9]] List after flattening : [1, 2, 3, 4, 5, 6, 7, 8, 9]
我们讨论了几种展平 Python 浅层列表的技术。
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP