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 07 Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
Python的时间模块datetime详解
Apr 17 Python
python学习之matplotlib绘制散点图实例
Dec 09 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
Python 之 Json序列化嵌套类方式
Feb 27 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 Python
Python 微信公众号文章爬取的示例代码
Nov 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扩展imagick
2014/06/02 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
微信小程序登录换取token的教程
2018/05/31 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
python求质数列表的例子
2019/11/24 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
django创建css文件夹的具体方法
2020/07/31 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
物流管理应届生求职信
2013/11/07 职场文书
春风行动实施方案
2014/03/28 职场文书
一岗双责责任书
2014/04/15 职场文书
法制教育演讲稿
2014/09/10 职场文书
申报材料格式
2014/12/30 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers