博客
关于我
【python】理解列表推导式以及列表推导式嵌套
阅读量:320 次
发布时间:2019-03-04

本文共 696 字,大约阅读时间需要 2 分钟。

列表推导式

所谓列表推导式,就是将一个可迭代的列表遍历,将每次遍历的元素拿出来进行一些操作,并用一个【】括起来,组成一个新的列表

语法

[expression for i in item if condition]

expression 就是对每一个元素的具体操作表达式;

item是某个可迭代对象的元素,如列表,元组或字符串等对象每次迭代的对象;
if condition 是对每一个元素做分支判断,
如果条件符合,则expression操作对应的元素.为了更好地说明列表表达式

例子

>>> arr = [1,2,3,4,5]>>> list = [item + 1 for item in arr]>>> list[2, 3, 4, 5, 6]

列表推导式嵌套

列表推导式的嵌套实际上就是,使用循环 + 列表推导式,将多维列表降维成一维列表

列表推导式嵌套 = 循环嵌套 + 列表推导式

步骤

列表推导式嵌套就是使用循环加上列表推导式的组合

input = [[('A', 1), ('B', 2)], [('C', 3), ('D', 4)]]# 以将input展开为一维列表为例

1.使用循环将多维列表变成一维的

>>> for row in input

2.嵌套一个循环将一维列表遍历为元素

>>> for row in input for item in row

3.使用列表推导式将元素组合为列表

>>> [item for row in input for item in row][[('A', 1), ('B', 2)], [('C', 3), ('D', 4)]]

转载地址:http://dhvh.baihongyu.com/

你可能感兴趣的文章
关于scanf函数在VS中使用的问题
查看>>
操作符初识
查看>>
c编程常见错误-函数声明没有参数类型声明
查看>>
Dialog篇
查看>>
概率论 贝叶斯公式
查看>>
数据挖掘 如何做 Python数据分析与挖掘实战
查看>>
java 重写(override)和重载(overload)区别
查看>>
java 多态
查看>>
java 多态类型转换
查看>>
java ==和equals
查看>>
java 接口(Interface)
查看>>
java 接口(Interface)多态特性
查看>>
搜集整理随机产生人的姓名的2种方法
查看>>
最简单的Socket程序[入门篇]
查看>>
VS2005图标默认存放位置
查看>>
常用正则表达式
查看>>
C#中换行的代码
查看>>
用正则表达式过滤多余空格
查看>>
XML:采用XHTML和CSS设计可重用可换肤的WEB站点
查看>>
U盘“无法识别的USB设备”解决办法
查看>>