在一般将Python的reduce函数的例子中,通常都是拿列表求和来作为例子。那么,是否还有其他例子呢? 
  本次分享将讲述如何利用Python中的reduce函数对序列求最值以及排序。 
  我们用reduce函数对序列求最值的想法建立在冒泡排序的算法上。先上例子?

from functools import reduce
from random import randint

A = [randint(1, 100) for _ in range(10)]

print('The origin list A is %s'%A)

f = lambda x,y: x if x>y else y
print('max of list A is %s.'%reduce(f,A))
print(reduce(f, A) == max(A))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在上述代码中,列表A是一个含有10个元素的列表,里面的元素是1到100内的随机整数。f是lambda函数,用于求两个数的最大值。根据reduce函数的运行原理,reduce(f, A)先会求出A中第一个和第二个元素的最大值,然后将这个最大值与第三个元素比较,返回两者中的最大值,这个最大值也是前三个元素的最大值,以此类推,我们最后得到的结果reduce(f, A)就是整个列表A中的最大值。 
  将上述代码中的lambda函数中的>号改为<号就能求得A的最小值。 
  在此基础上,我们再次利用冒泡排序的算法,对整个列表进行排序。具体的算法是:先用reduce函数求出整个列表的最大值,再用reduce函数求出整个列表去掉该最大值后的剩下元素中的最大值,以此类推,就能对整个列表进行排序了。代码如下:

from functools import reduce
from random import randint

A = [randint(1,www.cnzhaotai.com  100) for _www.leyouzaixan.cn  in range(10)]
print('The origin list A is %s'%A)

B = []
while(A):
    t = reduce(lambda x,y:www.yongshiyule.cn  x if x>y else y, A)
    B.append(t)
    A.remove(t)

print('The sorted www.120xh.cn  list is %s'%B)

输出结果如下:

The origin list A is [27, 64, 81, 14, 18, 16, 66, 24, 43, 91] 
The sorted list is [91, 81, 66, 64, 43, 27, 24, 18, 16, 14]

  本次分享到此结束,欢迎大家交流~~

Python之利用reduce函数求序列的最值及排序的更多相关文章

  1. Python实现利用最大公约数求三个正整数的最小公倍数示例

    Python实现利用最大公约数求三个正整数的最小公倍数示例 本文实例讲述了Python实现利用最大公约数求三个正整数的最小公倍数.分享给大家供大家参考,具体如下: 在求解两个数的小公倍数的方法时,假设 ...

  2. Python lambda和reduce函数

    看到一篇博文写lambda和reduce函数.笔者小痒了一下,用Python实现一下: #! /usr/bin/env python # -*-coding:utf-8-*- import time ...

  3. Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里

    reduce函数:在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引入:>>> from functool ...

  4. YTU 2706: 编写一个函数求最大的n值

    2706: 编写一个函数求最大的n 值. 时间限制: 1 Sec  内存限制: 128 MB 提交: 341  解决: 132 题目描述 编写一个函数求满足以下条件的最大的n.:12+22+32+-+ ...

  5. python Map()和reduce()函数

    Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...

  6. Python map,filter,reduce函数

    # -*- coding:utf-8 -*- #定义一个自己的map函数list_list = [1,2,4,8,16] def my_map(func,iterable): my_list = [] ...

  7. python里使用reduce()函数

    reduce()函数在库functools里,如果要使用它,要从这个库里导入.reduce函数与map函数有不一样地方,map操作是并行操作,reduce函数是把多个参数合并的操作,也就是从多个条件简 ...

  8. Python中的reduce()函数

    reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收 ...

  9. python中filter(),reduce()函数

    filter()函数 是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 和一个list,这个函数的作用是对每个元素进行判断,返回 True或 False,filter() ...

随机推荐

  1. 【mysql学习-1】

    part-1: #use mysql;/*show tables;select * from user;use mysql;show databases;#create database db1; # ...

  2. ubuntu系統如何啟動root用戶登陸?

    之前分享過關於這個問題的文章,現在自己在分享一個關於這個問題的文章給大家.為了學習Linux,一氣之下把win10的換成了ubuntu的系統.安裝就不給大家介紹了(網上很多教程). 在我們安裝好之後, ...

  3. jquery easyui alert闪一下的问题

    最近做项目使用了 jQuery EasyUI,版本是 1.4.3.x,在使用alert方法的时候如果alert后面执行页面跳转的话alert的消息只会闪一下,就跳到其他页面了 $.messager.a ...

  4. 码云配置webhooks自动触发拉取代码

    webhooks的使用 码云和github的钩子叫webhooks 每次您 push 代码后,都会给远程 HTTP URL 发送一个 POST 请求 码云项目管理页面的webhooks设置: http ...

  5. Java学习笔记十二:Java中方法的重载

    Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...

  6. 插头DP(基于连通性状态压缩的动态规划问题)(让你从入门到绝望)

    今天,我,Monkey king 又为大家带来大(ju)佬(ruo)的算法啦!--插头DP 例题(菜OJ上的网址:http://caioj.cn/problem.php?id=1489): 那么,这道 ...

  7. R语言绘图:ggplot2绘制ROC

    使用ggplot2包绘制ROC曲线 rocplot<- function(pred, truth, ...){ predob<- prediction(pred, truth) #打印AU ...

  8. ABAP CDS ON HANA-(5)テーブル結合ビュー

    JOINs in CDS View In ABAP CDS, Join between two data sources is allowed. Allowed joins are:- Inner J ...

  9. WPF中使用定时器的注意事项

    原文:WPF中使用定时器的注意事项 注意事项 要使用System.Windows.Threading.DispatcherTimer,而不能使用System.Timers.Timer. 原因是WPF是 ...

  10. kafka监听类

    package com.datad.dream.service; import com.alibaba.fastjson.JSON; import com.datad.dream.dao.KafkaI ...