Python元组列表怎么计算每个item指定单元最快捷方式,pythonitem,说的有点绕口,举个经常调
Python元组列表怎么计算每个item指定单元最快捷方式,pythonitem,说的有点绕口,举个经常调
说的有点绕口,举个经常调用的例子:
对如下元组的list排序:students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
使用lambda函数:sorted(students, key=lambda student : student[2])
或者itemgetter:sorted(students, key=operator.itemgetter(2))
很简洁,一句话。但是是建立在函数支持这样指定key的接口。
那假如我想将所有成绩求个平均值?提取所有人名打印出去?
有没有比较简洁有效的写法?感觉循环遍历访问总是有点不爽...
题主不想写所谓的循环大概是指不想写显示的for while循环遍历吧。
处理一些序列,除了迭代和递归,也没有别的方法了吧。
不想用显示的for循环,写成一句话可以使用列表解析,或者使用map,filter,reduces函数式函数,或者两者配合使用
pythonIn [1]: students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]In [2]: map(lambda t: t[0], students)Out[2]: ['john', 'jane', 'dave']In [3]: reduce(lambda x, y: x + y, map(lambda t: t[-1], students)) / float(len(students))Out[3]: 12.333333333333334
试试列表解析式?
例如说提取所有人名
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]>>> names = [ i[0] for i in students ]>>> names['john', 'jane', 'dave']
求平均值
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]>>> score = sum([ i[2] for i in students ])>>> score37>>> score/len(students)12.333333333333334
编橙之家文章,
相关内容
- Python清理计算过程中占用内存数据问题,python鍗犵敤鍐
- 求教Python中文编码望大神给解答,python中文编码,1.椭圆
- 用Python方法将搜狗词库转换成可读文件的思路是什么,
- qiniu CDN python如何获取下载domainname,qiniudomainname,正在试
- Python方法可以提取QQ群消息并进行关键字分析吗?,p
- 求Python快速判定ASCII字符和非ASCII字符的方法,pythonas
- Win环境下python代码执行报错NON-ASCII character问题,pytho
- Python内存回收模块gc这段代码应该如何理解,pythongc,1、
- Python程序文件打开状态持续写入数据会占内存吗?,
- 关于django正确部署heroku删除数据库求教,djangoheroku,mo
评论关闭