你需要学会的8个Python列表技巧


Posted in Python onJune 24, 2020

原作者:Nik Piepenbreier

翻译&内容补充:费弗里

原文地址:https://towardsdatascience.com/advanced-python-list-techniques-c6195fa699a3

列表(List)是你使用Python过程中接触最为频繁的数据结构,也是功能最为强大的几种数据结构之一。Python列表非常的万能且蕴含着许多隐藏技巧,下面我们就来探索一些常用的列表技巧。

1 列表元素的过滤

1.1 filter()的使用

filter()函数接受2个参数:1个函数对象以及1个可迭代的对象,接下来我们定义1个函数然后对1个列表进行过滤。

首先我们创建1个列表,并且剔除掉小于等于3的元素:

你需要学会的8个Python列表技巧

回顾一下发生了什么:

1. 我们定义了列表original_list

2. 接着我们定义了一个接受数值型参数number的函数filter_three,当传入的参数值大于3时会返回True,反之则会返回False

3. 我们定义了filter对象filtered,其中filter()接受的第一个参数是函数对象,第二个参数是列表对象

4. 最终我们将filter对象转化为列表,最终得到经filter_three过滤后original_list内留下的元素。

1.2 使用列表推导式

类似的,我们也可以利用列表推导式来过滤列表元素,作为一种生成和修改列表优雅的方式,列表推导式想必大家都比较熟悉了,下面是使用列表推导完成同样任务的过程:

你需要学会的8个Python列表技巧

2 修改列表

2.1 map()的使用

Python中内置的map()函数使得我们可以将某个函数应用到可迭代对象内每一个元素之上。

比方说我们想获取到一个列表对象中每一个元素的平方,就可以使用到map()函数,就像下面的例子一样:

你需要学会的8个Python列表技巧

类似filter()的工作过程,下面我们来看看发生了什么:

1. 首先我们定义了列表original_list,以及接受数值型参数并返回其平方值的函数square()

2. 接着我们定义了map对象squares,类似filter(),map()接受的第一个参数是函数对象,第二个参数是列表对象

3. 最终我们将map对象squares列表化,就得到了想要的结果

2.2 使用列表推导式

同样的我们也可以使用列表推导式完成同样的任务:

你需要学会的8个Python列表技巧

3 利用zip()来组合列表

有些情况下我们需要将两个或以上数量的列表组合在一起,这类需求使用zip()来完成非常方便。

zip()函数接收多个列表作为参数传入,进而得到每个位置上一一对应的元素组合,就像下面的例子一样:

你需要学会的8个Python列表技巧

4 颠倒列表

Python中的列表是有序的数据结构,正因如此,列表中元素的顺序很重要,有些时候我们需要翻转列表中所有元素的顺序,可以通过Python中的切片操作,用::-1来快捷地实现:

你需要学会的8个Python列表技巧

5 检查列表中元素的存在情况

有些情况下我们想要检查列表中是否存在某个元素,这种时候就可以使用到Python中的in运算符,譬如说我们有一个记录了所有比赛获胜队伍名称的列表,当我们想查询某个队名是否已获胜时,可以像下面的例子一样:

你需要学会的8个Python列表技巧

6 找出列表中出现次数最多的元素

有些情况下我们想要找出列表中出现次数最多的元素,譬如对记录若干次抛硬币结果的列表,找出哪一种结果出现次数最多,就可以参考下面的例子:

你需要学会的8个Python列表技巧

7 展平嵌套列表

有些情况下我们会遇到一些嵌套的列表,其每个元素又是各自不同的列表,这种时候我们就可以利用列表推导式来把这种嵌套列表展平,如下面2层嵌套的例子:

你需要学会的8个Python列表技巧

额外补充:

原作者这里只考虑到两层嵌套的列表,如果是更多层嵌套,就需要有多少层写多少for循环,比较麻烦,其实还有一种更好的方法,我们可以使用pip install dm-tree来安装tree这个专门用于展平嵌套结构的库,可以展平任意层嵌套列表,使用例子如下:

你需要学会的8个Python列表技巧

8 检查唯一性

如果你想要查看列表中的值是否都是唯一值,可以使用Python中的set数据结构的特点,譬如下面的例子:

你需要学会的8个Python列表技巧

以上就是本文的全部内容,如有疑问欢迎在评论区讨论~

以上就是你需要学会的8个Python列表技巧的详细内容,更多关于Python列表技巧的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
python访问系统环境变量的方法
Apr 29 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
python读取文本绘制动态速度曲线
Jun 21 Python
Django中的ajax请求
Oct 19 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
详解django中Template语言
Feb 22 Python
Python post请求实现代码实例
Feb 28 Python
将python字符串转化成长表达式的函数eval实例
May 11 Python
Python机器学习之PCA降维算法详解
May 19 Python
pytorch实现查看当前学习率
Jun 24 #Python
在pytorch中动态调整优化器的学习率方式
Jun 24 #Python
CentOS 7如何实现定时执行python脚本
Jun 24 #Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 #Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 #Python
基于pytorch中的Sequential用法说明
Jun 24 #Python
django haystack实现全文检索的示例代码
Jun 24 #Python
You might like
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
Python中title()方法的使用简介
2015/05/20 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
python lxml中etree的简单应用
2019/05/10 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
中专自我鉴定范文
2013/10/16 职场文书
公积金转移接收函
2014/01/11 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
陕西导游词
2015/02/04 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书