超级实用的8个Python列表技巧


Posted in Python onAugust 24, 2020

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

一、列表元素的过滤

1. filter()的使用

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

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

超级实用的8个Python列表技巧

回顾一下发生了什么:

我们定义了列表original_list接着我们定义了一个接受数值型参数number的函数filter_three,当传入的参数值大于3时会返回True,反之则会返回False我们定义了filter对象filtered,其中filter()接受的第一个参数是函数对象,第二个参数是列表对象最终我们将filter对象转化为列表,最终得到经filter_three过滤后original_list内留下的元素。

1.2 使用列表推导式

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

超级实用的8个Python列表技巧

二、修改列表

1. map()的使用

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

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

超级实用的8个Python列表技巧

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

首先我们定义了列表original_list,以及接受数值型参数并返回其平方值的函数square()接着我们定义了map对象squares,类似filter(),map()接受的第一个参数是函数对象,第二个参数是列表对象最终我们将map对象squares列表化,就得到了想要的结果

2. 使用列表推导式

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

超级实用的8个Python列表技巧

三、利用zip()来组合列表

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

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

超级实用的8个Python列表技巧

四、颠倒列表

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

超级实用的8个Python列表技巧

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

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

超级实用的8个Python列表技巧

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

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

超级实用的8个Python列表技巧

七、展平嵌套列表

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

超级实用的8个Python列表技巧

额外补充:

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

超级实用的8个Python列表技巧

八、检查唯一性

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

超级实用的8个Python列表技巧

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

Python 相关文章推荐
python登录豆瓣并发帖的方法
Jul 08 Python
python中set常用操作汇总
Jun 30 Python
numpy排序与集合运算用法示例
Dec 15 Python
Python 实现删除某路径下文件及文件夹的实例讲解
Apr 24 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
用Python实现数据的透视表的方法
Nov 16 Python
Python的历史与优缺点整理
May 26 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 #Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 #Python
python3让print输出不换行的方法
Aug 24 #Python
Django3中的自定义用户模型实例详解
Aug 23 #Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 #Python
pandas参数设置的实用小技巧
Aug 23 #Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 #Python
You might like
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP SOCKET编程详解
2015/05/22 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
react-router实现按需加载
2017/05/09 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
python列表的增删改查实例代码
2018/01/30 Python
python发送告警邮件脚本
2018/09/17 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Django用户认证系统 User对象解析
2019/08/02 Python
django框架cookie和session用法实例详解
2019/12/10 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
英文自荐信
2013/12/15 职场文书
小学生考试获奖感言
2014/01/30 职场文书
学习决心书范文
2014/03/11 职场文书
党员承诺书怎么写
2014/05/20 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书