当前位置: 首页 > news >正文

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

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

一、嵌套列表格式

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

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

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

二、嵌套列表展开方法

(一)for循环

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

(1)for循环+append()
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’]

(2)for循环+python自加

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

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()
alis = [['xx', 'yy'], [2], ['四', 4], ['99']]
blis = []
for lis in alis:blis.extend(lis)
print("alis展开后:", blis)

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

(二)列表推导式

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

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(嵌套列表,[])

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

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

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

-end-

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 32--蜂鸣器
  • 反爬虫限制:有哪些方法可以保护网络爬虫不被限制?
  • 【Linux】(26) 详解磁盘与文件系统:从物理结构到inode机制
  • WebTracing:如何使用一款SDK实现前端全链路监控
  • Qt如何在工程中使用dll库
  • 数据可视化工具,免费无限制制作报表
  • Datawhale AI夏令营第三期 AI+物质科学学习记录 Task2 RNN建模SMILES进行反应产率预测
  • [极客大挑战 2019]PHP1
  • APP逆向 day25unidbg中
  • 遗传算法与深度学习实战——生命模拟及其应用
  • 嵌入式C++、ROS 、OpenCV、SLAM 算法和路径规划算法:自主导航的移动机器人流程设计(代码示例)
  • .JPG图片,各种压缩率下的文件尺寸
  • 这两个大龄程序员,打算搞垮一个世界软件巨头!
  • Sqlmap中文使用手册 - Enumeration模块参数使用
  • 【前端面试】九、框架
  • [iOS]Core Data浅析一 -- 启用Core Data
  • conda常用的命令
  • Django 博客开发教程 16 - 统计文章阅读量
  • Docker入门(二) - Dockerfile
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript设计模式与开发实践系列之策略模式
  • MYSQL 的 IF 函数
  • mysql常用命令汇总
  • 面试遇到的一些题
  • 原生js练习题---第五课
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # 计算机视觉入门
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #laravel 通过手动安装依赖PHPExcel#
  • (2)空速传感器
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (3)(3.5) 遥测无线电区域条例
  • (70min)字节暑假实习二面(已挂)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (二)WCF的Binding模型
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十六)一篇文章学会Java的常用API
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (原創) 物件導向與老子思想 (OO)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转载)(官方)UE4--图像编程----着色器开发
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 7和core版 SignalR
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net IOC框架入门之一 Unity
  • .NET MVC第三章、三种传值方式