基于Python列表解析(列表推导式)


Posted in Python onJune 23, 2018

列表解析——用来动态地创建列表

[expr for iter_var in iterable if cond_expr]

例子一:

map(lambda x: x**2, range(6))
[0, 1, 4, 9, 16, 25]
[x**2 for x in range(6)]
[0, 1, 4, 9, 16, 25]

列表解析式可以取代内建的map()函数以及lambda,而且++效率更高++。

例子二:

seq = [11, 10, 9, 8, 7, 6]
filter(lambda x: x % 2, seq)
[11, 9, 7]
[x for x in seq if x % 2]
[11, 9, 7]

例子三:

找出文本中最长的词

# 第一个最长的词
longest = ''
for word in text:
 if len(word) > len(longest):
  longest = word
#所有最长的词
maxlen = max(len(word) for word in text) # 生成器表达式
[word for word in text if len(word) == maxlen] #链表推导式

不足:列表解析得一个不足就是必要生成所有数据,用于创建整个列表。这可能对有大量数据得迭代其有负面效应。

++解决方法++:生成器表达式,通过结合列表解析和生成器解决了这个问题。

嵌套列表推导式

例一

all_data = [[1,3,5,7,9],
   [2,4,6,8,10]]
result = []
for nums in all_data:
 temp_num = [num for num in nums if num >= 5]
 result.extend(temp_num)

嵌套列表推导式

result = [num for nums in all_data for num in nums if num >= 5]

推导式中for的部分是按嵌套顺序排列的。

例二

some_tuples = [(1,2,3), (4,5,6), (7,8,9)]
flattened = [x for tup in some_tuples for x in tup]
flattened
[1,2,3,4,5,6,7,8,9]

以上这篇基于Python列表解析(列表推导式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之实现石头剪刀布游戏示例
Feb 11 Python
python的Template使用指南
Sep 11 Python
在Python中操作时间之tzset()方法的使用教程
May 22 Python
python中的字典使用分享
Jul 31 Python
Python制作刷网页流量工具
Apr 23 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 Python
Elasticsearch 聚合查询和排序
Apr 19 Python
python将回车作为输入内容的实例
Jun 23 #Python
Python 对输入的数字进行排序的方法
Jun 23 #Python
python获取命令行输入参数列表的实例代码
Jun 23 #Python
Python键盘输入转换为列表的实例
Jun 23 #Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 #Python
Python实现重建二叉树的三种方法详解
Jun 23 #Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 #Python
You might like
PHP 判断变量类型实现代码
2009/10/23 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
JavaScript延迟加载
2021/03/09 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
利用Python演示数型数据结构的教程
2015/04/03 Python
python append、extend与insert的区别
2016/10/13 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
Python占用的内存优化教程
2019/07/28 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Python如何存储数据到json文件
2020/03/09 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
长辈证婚人证婚词
2014/01/09 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
消防先进事迹材料
2014/02/10 职场文书
公司授权委托书
2014/04/04 职场文书
党员作风建设自查报告
2014/10/23 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
自荐信大全
2019/03/21 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python