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 相关文章推荐
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
Python字符串、元组、列表、字典互相转换的方法
Jan 23 Python
python实现报表自动化详解
Nov 16 Python
linux下python使用sendmail发送邮件
May 22 Python
PyQt5 多窗口连接实例
Jun 19 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
Python Selenium参数配置方法解析
Jan 19 Python
Python中的xlrd模块使用原理解析
May 21 Python
使用Keras构造简单的CNN网络实例
Jun 29 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
python 三边测量定位的实现代码
Apr 22 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 什么是PEAR?(第三篇)
2009/03/19 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
python3访问sina首页中文的处理方法
2014/02/24 Python
Python求导数的方法
2015/05/09 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
解决django FileFIELD的编码问题
2020/03/30 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
大型活动组织方案
2014/05/10 职场文书
大学专科自荐信
2014/06/17 职场文书
党员四风问题个人对照检查材料
2014/10/26 职场文书
幽默导游词开场白
2015/05/29 职场文书
小学生运动会广播
2015/08/19 职场文书
Python基本的内置数据类型及使用方法
2022/04/13 Python