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实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
python装饰器初探(推荐)
Jul 21 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python使用生成器实现可迭代对象
Mar 20 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
python怎么提高计算速度
Jun 11 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
python批量修改文件名的示例
Sep 27 Python
Python 解析xml文件的示例
Sep 29 Python
python实现登录与注册系统
Nov 30 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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下清空字符串中的HTML标签的代码
2010/09/06 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php导出excel格式数据问题
2014/03/11 PHP
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python实现屏保计时器的示例代码
2018/08/08 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python实现视频读取和转化图片
2019/12/10 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
《草原》教学反思
2014/02/15 职场文书
个人借款担保书
2014/04/02 职场文书
学生安全责任书
2014/04/15 职场文书
物业管理工作方案
2014/05/10 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
Golang 遍历二叉树
2022/04/19 Golang