问题: 我有这样的一个列表:

1
['a.b.c.d11u.e.f.g', 'e.f88.g', 'caa3.z.brr', 'z.48.ff.ee']

需要找节点最多的一个(节点间由.分割)

看似简单的工作,要用 Pythonic 的方法来做,还是要对 Python 的内置函数有一定程度的熟悉,比如这里可以用最熟悉不过的max,但是会用到它并不常用的可选参数:key

1
2
node_list = ['a.b.c.d11u.e.f.g', 'e.f88.g', 'caa3.z.brr', 'z.48.ff.ee']
max_node = max(node_list, key=lambda n: n.count('.'))

在这里,使用key参数改变了max比较列表元素的方法,达到了完成任务的目的。

顺便再温习一下另一个用的不是很多的内置函数:reduce,使用它来解决这个问题

1
2
node_list = ['a.b.c.d11u.e.f.g', 'e.f88.g', 'caa3.z.brr', 'z.48.ff.ee']
max_node = reduce(lambda a,b: a.count('.') >= b.count('.') and a or b, node_list)

reduce接受两个必选参数,第一个参数是一个函数,这个函数接受两个参数,返回一个值;第二个参数是一个序列(比如列表); reduce 首先把序列的前两个元素作为参数传递给参数函数,然后把参数函数的返回值和序列的第三个参数一起再传递给参数函数,依次类推,最终只剩下一个值。这么解释似乎更晕啦,哈哈,还是 Python 自己的 help 说的好:

1
For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5)

当然了,就这个问题而言,首选 max。Okay,重新学习了 max,温习了 reduce,温故而知新。

from:http://blog.xupeng.me/2008/02/19/python-function-max-and-reduce/

python学习--max和reduce函数相关推荐

  1. Python学习(14)--内置函数

    Python学习(14)--内置函数 1.Python内置函数 在Python中有很多的内置函数供我们调用,熟练的使用这些内置函数可以让编写代码时事半功倍,所谓内置函数就是那些Python已经预定义并 ...

  2. python学习总结----内置函数及数据持久化

    python学习总结----内置函数及数据持久化 抽象基类(了解)- 说明:- 抽象基类就是为了统一接口而存在的- 它不能进行实例化- 继承自抽象类的子类必须实现抽象基类的抽象方法 - 示例:from ...

  3. Python学习笔记11:函数修饰符

    Python学习笔记11:函数修饰符 Python有很多有趣的特性,其中函数修饰符就是一个. 我们在之前的那个web应用示例中用过如下写法: @web.route('/log') @符号后边的,就是一 ...

  4. Python中map和reduce函数?

    1.从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce( ...

  5. Python 3.x中reduce()函数完整用法

    在Python 3.x中,reduce()不再是内置函数,而是移到了标准库functools中,需要先导入再使用,其官方解释如图所示: 从官方文档可知,该函数用法要点如下: 1)把一个双参数函数以累积 ...

  6. Python学习笔记7:函数对象及函数对象作參数

    一.lambda函数 比如: fun1 = lambda x,y: x + y print fun1(3,4) 输出:7 lambda生成一个函数对象.该函数參数为x,y,返回值为x+y.函数对象赋给 ...

  7. python学习笔记之自定义函数

    live long and prosper 自定义函数 def greet_user():"""现实简单的问候语"""print(" ...

  8. python学习之- 内置函数

    内置方法:1:abs():取绝对值2:all():当可迭代对象里所有均为真时结果为真. all([1,2,3])3:any():当可迭代对象里任意一个数据为真结果即为真.any([0,1,2])4:a ...

  9. Python学习笔记:返回函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. 文件系统、mkdir、touch、nano、cp笔记
  2. 电感检测_三、电感线圈的识别与检测(二)
  3. linux入门指令 详解,Linux基础命令之mktemp详解
  4. java 下载文件大小_如何在浏览器中显示使用角度5下载的文件的文件大小?
  5. 2、python的print函数格式化输出
  6. 如何在 iPhone 和 iPad 上关闭 Spotlight 建议?
  7. Redis异常JedisConnectionException:Read timed out解决笔记
  8. Atitit webclient httpclient技术总结 RestTemplate Atitit CateIT重要技术httpclient iduah2 impt 体系树路径:CS
  9. SAP 资产分类的配置方法
  10. Oracle 获取汉字拼音首字母
  11. python计算黑白图像像素值
  12. pyserial模块读取串口数据
  13. 程序员专用的简历神器,让你制作简历更简单,方便,专业
  14. YouTube Java API入门
  15. linux多种方法提取ip地址
  16. c++计算圆柱体表面积
  17. java实现二叉树广度优先遍历_二叉树之深度优先和广度优先遍历(Java)
  18. pdo mysql dsn_使用PDO构造函数连接数据库及DSN详解
  19. 2018年总结与2019的计划
  20. Oracle-06:DML语言数据表的操作

热门文章

  1. 算法二(python)
  2. OrCAD+PADS联合绘制PCB的总结
  3. R 数据正态分布检验
  4. How to debug apps on Kindle Fire on OS X
  5. 星秒入选毕马威(KPMG)汽车科技新锐企业榜
  6. 微信小程序的简单登录
  7. 如何使用outlook配置qq邮箱
  8. QQ看点模块(初稿截图)
  9. 【计算机网络】知识梳理(二)物理层
  10. ADOBE pr000的下载安装+基本操作