python I 嵌套列表的多种展开方法

devtools/2024/10/21 4:44:17/

python中,如何将嵌套列表展开形成一个列表。

一、嵌套列表格式

本文模拟的嵌套列表alis,如下:

python">alis = [['xx', 'yy'], [2], ['四', 4], ['99']]

嵌套列表alis,有以下特点:
1、嵌套列表alis,只有两层,格式为:[[]]。
2、第一层列表中的元素也全都是列表类型。

二、嵌套列表展开方法

(一)for循环

最容易想到的就是采用for循环进行展开。
利用for循环,结合列表本身的一些处理方法,可以有多种写法。
常见的3种写法如下:

(1)for循环+append()
python">alis = [['xx', 'yy'], [2], ['四', 4], ['99']]
blis = []
for lis in alis:if type(lis) == list:for i in lis:blis.append(i)else:blis.append(lis)
print('alis展开后:', blis)

alis展开后: [‘xx’, ‘yy’, 2, ‘四’, 4, ‘99’]

python_28">(2)for循环+python自加

原理:for循环相当于将嵌套列表变单层列表,自加相当于单层列表相加。

python">alis = [['xx', 'yy'], [2], ['四', 4], ['99']]
blis = []
for lis in alis:blis += lis
print("alis展开后:", blis)

alis展开后:[‘xx’, ‘yy’, 2, ‘四’, 4, ‘99’]

(3)for循环+extend()
python">alis = [['xx', 'yy'], [2], ['四', 4], ['99']]
blis = []
for lis in alis:blis.extend(lis)
print("alis展开后:", blis)

alis展开后:[‘xx’, ‘yy’, 2, ‘四’, 4, ‘99’]

(二)列表推导式

列表推导式,for循环的简洁版

python">alis = [['xx', 'yy'], [2], ['四', 4], ['99']]
blis = [i for k in alis for i in k]
print("alis展开后:", blis)

alis展开后:[‘xx’, ‘yy’, 2, ‘四’, 4, ‘99’]

(三)使用sum函数

使用方法:sum(嵌套列表,[])

python">alis = [['xx', 'yy'], [2], ['四', 4], ['99']]
blis = sum(alis, [])
print("alis展开后:", blis)

alis展开后:[‘xx’, ‘yy’, 2, ‘四’, 4, ‘99’]

以上嵌套列表的展开方法,主要是针对两层嵌套列表、且第二层均是列表的情况。
仅供参考。

-end-


http://www.ppmy.cn/devtools/87680.html

相关文章

环境如何搭建部署Nacos

这里我使用的是Centos7, Nacos 依赖 Java环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用 ## 1、下载安装JDK wget https://download.oracle.com/java/17/latest/jdk-17_linux-x6…

Mysql重大更新,三个版本遭下架!

书接上文,7/11日开源数据库软件服务商percona发布重要警告,最新的mysql版本存在重大bug, 当mysql表超过10000张时重启可能会崩溃 重要!!!MySQL 9.0存在重大BUG!!_mysql8.0.38 版本…

视觉SLAM第二讲

SLAM分为定位和建图两个问题。 定位问题 定位问题是通过传感器观测数据直接或间接求解位置和姿态。 通常可以分为两类:基于已知地图的定位和基于未知地图的定位。 基于已知地图的定位 利用预先构建的地图,结合传感器数据进行全局定位。SLAM中的全局…

EF访问PostgreSql,如何判断jsonb类型的数组是否包含某个数值

下面代码判断OpenUserIds(long[]类型的jsonb)字段,是否包含 8 basequery basequery.Where(m > Microsoft.EntityFrameworkCore.NpgsqlJsonDbFunctionsExtensions.JsonContains(EF.Functions, m.OpenUserIds, new long[] { 8 }));

昇思25天学习打卡营第XX天|LSTM+CRF序列标注

条件随机场(CRF)是一种用于序列预测的概率图模型,它考虑了序列中元素之间的相互依赖关系。与简单的多分类问题不同,CRF能够捕捉序列中标签的连贯性,如在命名实体识别中,一个词的标签往往依赖于它前面词的标…

SA后缀数组

基础概念&#xff1a; 子串&#xff1a; 在一个字符串s中&#xff0c;取任意i<j,那么从i到j的这一段就叫做s的一个子串 后缀&#xff1a; 从字符串s的某个位置i到字符串末尾的子串&#xff0c; suff[i]: 以s的第i个字符为第一个元素的后缀 后缀数组&#xff1a; 现有字符…

Android 10.0 Launcher 启动流程

在前面SystemUI启动流程中说到&#xff0c;在SystemServer中会去启动各种系统服务&#xff0c;这里的launcher也是启动的其中一个服务ActivityManagerService去启动的。在android10之前&#xff0c;系统四大组件的启动都是在ActivityManagerService中&#xff0c;在android10中…

组蛋白乳酸化和RNA甲基化如何联动?请大数据把这个思路推给科研人

在细胞生物学中&#xff0c;基因表达调控是决定细胞功能与命运的核心过程之一。组蛋白作为修饰性蛋白&#xff0c;在调控基因转录中起着至关重要的作用。近年来&#xff0c;科学家们发现&#xff0c;组蛋白的多种化学修饰&#xff08;如甲基化、乙酰化、磷酸化等&#xff09;影…