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中的赋值运算符
May 13 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
视觉直观感受若干常用排序算法
Apr 13 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
利用Python如何批量更新服务器文件
Jul 29 Python
python xpath获取页面注释的方法
Jan 14 Python
python3去掉string中的标点符号方法
Jan 22 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
python regex库实例用法总结
Jan 03 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中使用灵巧的体系结构
2006/10/09 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php实现文件下载实例分享
2014/06/02 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
python实现中文输出的两种方法
2015/05/09 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
如何使用Python调整图像大小
2020/09/26 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
中学教师培训制度
2014/01/31 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
火烧圆明园观后感
2015/06/03 职场文书
初中思想品德教学反思
2016/02/24 职场文书
用Python实现Newton插值法
2021/04/17 Python
Ajax常用封装库——Axios的使用
2021/05/08 Javascript