Python中你应该知道的一些内置函数


Posted in Python onMarch 31, 2017

前言

python内置了一些非常巧妙而且强大的内置函数,对初学者来说,一般不怎么用到,我也是用了一段时间python之后才发现,哇还有这么好的函数,这个函数都是经典的而且经过严格测试的,可以一下子省了你原来很多事情,代码不仅简洁易读了很多,而且不用自己去闭门造车.既方便了自己又减少了bug。

一、sorted()

1)对于一个列表排序

sorted([100, 98, 102, 1, 40])
>>>[1, 40, 98, 100, 102]

2)通过key参数/函数

比如一个长列表里面嵌套了很多字典元素,我们要按照每个元素的长度大小排序

L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
new_line=sorted(L,key=lambda x:len(x))
print(new_line)
>>>[{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]

3)对由tuple组成的List排序

比如下面是学生里面的年龄的一个list

students = [('wang', 'A', 15), ('li', 'B', 12), ('zhang', 'B', 10)] 
print(sorted(students, key=lambda student : student[2])) 
>>>[('zhang', 'B', 10), ('li', 'B', 12), ('wang', 'A', 15)]

4)用cmp函数排序

students = [('wang', 'A', 15), ('li', 'B', 12), ('zhang', 'B', 10)] 
print(sorted(students, cmp=lambda x,y : cmp(x[0], y[0])) )
>>>[('li', 'B', 12), ('wang', 'A', 15), ('zhang', 'B', 10)]

其实对于python的排序要仔细讲,需要一整篇幅讲它的排序算法,内容非常多,感兴趣的可以去看一下源码,看它是如何设计的,这里只是先点一下.

二、map()

map可以根据提供的函数对指定序列做映射,它接受一个函数f和一个list,并通过把函数f以此作用在list上的每个元素,然后返回一个新的list,map函数的入参也可以是多个.注意这个函数一定要有返回值(值值值重要的说三遍)。

不然就会返回新的list 类似[None, None, None, None, None, None, None, None, None]

Python中你应该知道的一些内置函数

适合的场景是对列表里面的一些元素需要重复的操作,用map就可以轻松搞定.

三、enumerate()

Python中,迭代永远是取出元素本身,而非元素的索引,有的时候我们需要知道元素的索引比如在一个很长的列表里面是一些网站名,我们希望在打印的时候,也能列出索引。若没有这个函数,我们需要在加一个变量,在循环打印的时候让这个计数变量递增,现在有了enumerate,就不用这么麻烦了,直接搞定.

Python中你应该知道的一些内置函数

四、zip()

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
>>print xyz

这个函数特别是在构建字典序列的时候非常方便 (这招非常巧妙,大家可以仔细揣摩)

Python中你应该知道的一些内置函数

五、filter()

filter函数接受一个函数f和一个list,这个函数f的作用是对每个元素进行判断,返回True或者False,这样可以过滤掉一些不符合条件的元素,然后返回符合条件的list.

def is_even(x):
 return x%2==0
print(filter(is_even,[1,2,3,4,5]))
>>>[2, 4]

特别是在处理文件的时候,需要把一些空格,回车和空字符去掉

Python中你应该知道的一些内置函数

六、reduce()

reduce函数的用法和map很类似,也是一个函数f和一个list,但是函数的入口参数一定要是两个,reduce也是对每个元素进行反复调用,最后返回最终的值,而map是返回一个list

Python中你应该知道的一些内置函数

注意:在python3里面reduce已经从全局函数里面移除了,需要用的话要from functools import reduce

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现的udp协议Server和Client代码实例
Jun 04 Python
python进阶教程之模块(module)介绍
Aug 30 Python
Python对文件操作知识汇总
May 15 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python 生成VOC格式的标签实例
Mar 10 Python
Python读写操作csv和excle文件代码实例
Mar 16 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
Python Django框架介绍之模板标签及模板的继承
May 27 Python
python 性能优化方法小结
Mar 31 #Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 #Python
pygame加载中文名mp3文件出现error
Mar 31 #Python
Python自动发邮件脚本
Mar 31 #Python
Python中查看文件名和文件路径
Mar 31 #Python
使用python遍历指定城市的一周气温
Mar 31 #Python
python网络编程调用recv函数完整接收数据的三种方法
Mar 31 #Python
You might like
人大复印资料处理程序_补充篇
2006/10/09 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
使用php来实现网络服务
2009/09/15 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
python实现银联支付和支付宝支付接入
2019/05/07 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
如何查看python关键字
2021/01/17 Python
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
2013的个人自我评价
2013/12/26 职场文书
单位未婚证明范本
2014/01/18 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
党组织公开承诺书
2014/03/29 职场文书
总经理任命书范本
2014/06/05 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
如何用python绘制雷达图
2021/04/24 Python
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python