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使用xlrd读取Excel格式文件的方法
Mar 10 Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
python简单实现计算过期时间的方法
Jun 09 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
基于python生成器封装的协程类
Mar 20 Python
python flask解析json数据不完整的解决方法
May 26 Python
python调用webservice接口的实现
Jul 12 Python
python opencv调用笔记本摄像头
Aug 28 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
详解Python生成器和基于生成器的协程
Jun 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
幼儿园标语大全
2014/06/19 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server
SQLServer之常用函数总结详解
2021/08/30 SQL Server