Python列表list常用内建函数实例小结


Posted in Python onOctober 22, 2019

本文实例总结了Python列表list常用内建函数。分享给大家供大家参考,具体如下:

>>> x = list(range(10))
>>> import random
>>> random.shuffle(x) #打乱顺序
>>> x
[2, 4, 5, 9, 3, 7, 8, 0, 6, 1]
>>> max(x) #返回最大值
9
>>> min(x) #返回最小值
0
>>> sum(x) #所有元素之和
45
>>> len(x) #所有元素个数
10
>>> list(zip(x,[1]*10)) #多列表重新组合
[(2, 1), (4, 1), (5, 1), (9, 1), (3, 1), (7, 1), (8, 1), (0, 1), (6, 1), (1, 1)]
>>> list(zip(range(1,4))) #zip()函数可以用于一个序列或者迭代对象
[(1,), (2,), (3,)]
>>> list(zip(['a','b','c'],[1,2])) #两个列表不等长,以短的为准
[('a', 1), ('b', 2)]
>>> enumerate(x) #枚举列表元素,返回enumerate对象
<enumerate object at 0x0000016166A057E0>
>>> list(enumerate(x)) #enumerate对象可迭代
[(0, 2), (1, 4), (2, 5), (3, 9), (4, 3), (5, 7), (6, 8), (7, 0), (8, 6), (9, 1)]
>>> x
[2, 4, 5, 9, 3, 7, 8, 0, 6, 1]
>>> list(map(str,range(5))) #转换为字符串
['0', '1', '2', '3', '4']
>>> def add5(v):
  return v+5
>>> list(map(add5,range(10))) #将单参数函数映射到所有元素
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> def add(x,y):
  return x+y
>>> list(map(add,range(5),range(5,10))) #将双参数函数映射到两个序列上
[5, 7, 9, 11, 13]
>>> list(map(lambda x,y:x+y, range(5), range(5,10)))
[5, 7, 9, 11, 13]
>>> [add(x,y) for x, y in zip(range(5), range(5,10))]
[5, 7, 9, 11, 13]
>>>

标准库functools中的reduce()可以将一个接受2个参数的函数以累积的方式从左到右一次作用到一个序列或迭代器对象的所有元素上

>>> from functools import reduce
>>> seq = [1,2,3,4,5,6,7,8,9]
>>> reduce(lambda x, y:x+y,seq)
45
>>>
>>> seq = ['foo','x33','?!','***']
>>> def func(x):
  return x.isalnum() #测试是否为字母或者数字
>>> filter(func, seq)   #返回filter对象
<filter object at 0x000001B376088BA8>
>>> list(filter(func,seq)) #将filter对象转换为list
['foo', 'x33']
>>> seq
['foo', 'x33', '?!', '***']
>>> [x for x in seq if x.isalnum()] #用列表推导式实现相同功能
['foo', 'x33']
>>> list(filter(lambda x:x.isalnum(),seq)) #用lambda实现相同功能
['foo', 'x33']
>>> list(filter(None,[1,2,3,0,0,4,0,5])) #指定函数为None
[1, 2, 3, 4, 5]
>>>
>>> import random
>>> x = [random.randint(1,100) for i in range(10)] #生成10个1-100区间的随机数
>>> x
[72, 11, 80, 97, 94, 75, 70, 21, 21, 41]
>>> list(map(lambda i:i+5, x)) #所有元素加5
[77, 16, 85, 102, 99, 80, 75, 26, 26, 46]
>>> x = [random.randint(1,10) for i in range(10)]
>>> x
[5, 7, 6, 2, 6, 1, 5, 1, 2, 7]
>>> y = [random.randint(1,10) for i in range(10)]
>>> y
[2, 10, 9, 7, 7, 4, 9, 1, 7, 1]
>>> import operator
>>> sum(map(operator.mul, x, y)) #向量内积
261
>>> sum((i*j for i,j in zip(x,y))) #使用内置函数计算向量内积
261
>>> list(map(operator.add, x, y)) #两个等长的向量对应元素相加
[7, 17, 15, 9, 13, 5, 14, 2, 9, 8]
>>> list(map(lambda i,j: i+j, x,y)) #使用lambda实现同样功能
[7, 17, 15, 9, 13, 5, 14, 2, 9, 8]
>>>

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python 性能优化技巧总结
Nov 01 Python
《Python学习手册》学习总结
Jan 17 Python
Django后台获取前端post上传的文件方法
May 28 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
详解【python】str与json类型转换
Apr 29 Python
python opencv捕获摄像头并显示内容的实现
Jul 11 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
Python如何将模块打包并发布
Aug 30 Python
python实现KNN近邻算法
Dec 30 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 #Python
Python异常模块traceback用法实例分析
Oct 22 #Python
Python多线程爬取豆瓣影评API接口
Oct 22 #Python
Python Process多进程实现过程
Oct 22 #Python
详解python中eval函数的作用
Oct 22 #Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 #Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 #Python
You might like
PHP中extract()函数的妙用分析
2012/07/11 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
input 高级限制级用法
2009/03/26 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
python版本五子棋的实现代码
2018/12/11 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
浅析python中while循环和for循环
2019/11/19 Python
django ORM之values和annotate使用详解
2020/05/19 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
计算机维护专业推荐信
2014/02/27 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
甲午大海战观后感
2015/06/02 职场文书
新郎新娘致辞
2015/07/31 职场文书