目录

  • 一、偏函数
  • 二、随机数
    • 2.1 random()
    • 2.2 uniform(x,y)
    • 2.3 randint(x,y)
    • 2.4 random.randrange(start,end,step)
    • 2.5 choice(sequence)
    • 2.6 shuffle(x)
    • 2.7 sample(sequence,k)
  • 三、MapReduce处理
    • 3.1 filter(function,sequence)
    • 3.2 map(function.sequence)
    • 3.3 reduce(function,sequence)

一、偏函数

在函数执行时需要根据函数的要求传递相应参数,而后才可以得到所需要的计算结果。例如,现在有一个加法计算的函数,传统的调用如下:

def add(a,b,c=2):return a+b+cadd(100,200)
add(100,200,300)

此时程序根据add()函数的定义要求传入参数并实现了加法的计算,但是假设在某些操作代码中,如果add()函数中参数a和b的内容为已知固定内容,并且要根据需要动态接收参数c时,就可以利用偏函数对已有函数进行包装,从而减少函数调用时的参数传递。如果想要定义偏函数,则必须导入functools.partial模块。

下面举个偏函数例子:

from functools import partialdef add(a,b,c=2):return a + b + cplus = partial(add,100,200)
print(plus())
print(plus(20))

使用偏函数重新封装之后就可以减少函数调用时所传递的参数个数,对于一些参数较长的函数使用偏函数会降低函数的使用难度。

二、随机数

Python提供了random模块,利用此模块可以生成随机数,或者根据给定的序列数据进行随机抽取。

2.1 random()

random()随机生成一个0~1的随机浮点数。

import random
a = random.random()

2.2 uniform(x,y)

生成一个在指定范围内的随机浮点数,如果x>yx>yx>y,则生成随机数n,且n满足y<=n<=xy<=n<=xy<=n<=x。如果x<yx<yx<y,则n满足x<=n<=yx<=n<=yx<=n<=y。

import random
a = random.uniform(5,3)
b = random.uniform(3,5)

2.3 randint(x,y)

生成一个指定范围内的随机整数,x<=n<=yx<=n<=yx<=n<=y,注意这里必须x小于等于y。

import random
a = random.randint(3,5)

2.4 random.randrange(start,end,step)

从指定范围内,按照step递增数据,并从里面抽取随机数。

import random
a = random.randrange(1,6,2)

2.5 choice(sequence)

从序列中随机抽取数据。

import random
a = random.choice([1,2,3,4,5])

2.6 shuffle(x)

将一个列表中的元素打乱。

import random
a = [1,2,3,4,5]
random.shuffle(a)

2.7 sample(sequence,k)

从指定序列中随机获得指定序列分片。

import random
a = [1,2,3,4,5,6,7,8,9,10]
b = random.sample(a,3)

三、MapReduce处理

Python序列可以实现多个相关数据的存储,在很多时候对于存储在序列中的数据往往都需要进行过滤、处理以及分析操作,在数据量小的情况下,开发者可以直接使用for循环与判断的模型处理,但是在数据量较大的情况下,为了可以快速地获取数据统计结果,就可以利用Python中提供的以下三个函数来处理:

3.1 filter(function,sequence)

对传入的序列数据进行过滤;

3.2 map(function.sequence)

对传入的序列数据进行处理;

3.3 reduce(function,sequence)

对传入的序列数据进行统计;

以上三个函数往往都会与lambda函数联合使用。

​# from random import filter
# from random import map
from functools import reduce
numbers = [1,2,3,4,5,6,7,8,9]
filter_result = list(filter(lambda item: item % 2 == 0,numbers))
print("filter()函数过滤之后的列表数据:{}".format(filter_result))
map_result = list(map(lambda item: item * 2,filter_result))
print("map()函数处理之后的列表数据:{}".format(map_result))
reduce_result = reduce(lambda x,y: x+y,map_result)
print("reduce()函数处理之后的列表数据:{}".format(reduce_result))

代码输出如下所示:

filter()函数过滤之后的列表数据:[2, 4, 6, 8]
map()函数处理之后的列表数据:[4, 8, 12, 16]
reduce()函数处理之后的列表数据:40

Python ——模块相关推荐

  1. GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态

    GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态 一个Python模块,用于在Python中使用nvidia-smi以编程方式从NVIDA GPU获取GP ...

  2. 在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录

    简介 Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等 ...

  3. Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8

    我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...

  4. Python培训教程分享:Python模块如何导入__all__属性?

    本期小编为大家带来的Python培训教程是关于"Python模块如何导入__all__属性?"的内容,后面在工作中是会遇到Python模块这个工作内容的,Python模块的开头通常 ...

  5. 分享3个好用到爆的 Python 模块,点赞收藏

    作者 | 俊欣 来源 | 关于数据分析与可视化 今天给大家介绍3个特别好用的Python模块,知道的人可能不多,但是特别的好用. Psutil Pendulum Pyfiglet Psutil Pyt ...

  6. python模块之image修改图片类型

    python模块之image修改图片类型 有时候我们需要不同格式的图片后缀格式,如:png,jpg,如果仅仅手动修改图片的后缀的话,只是表面修改了后缀格式,其实图片的原类型仍然没有变化,可以用pyth ...

  7. python模块之imghdr检测图片类型

    python模块之imghdr检测图片类型 1. imghdr是什么 imghdr是一个用来检测图片类型的模块,传递给它的可以是一个文件对象,也可以是一个字节流.[仅仅根据文件后缀判断文件类型显然不准 ...

  8. python模块和包用法详解(__all__)

    1. 模块         Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句.         模块能定义函数,类和变 ...

  9. 教你如何解决Python模块导包没有找到的问题

    一般情况下,Python模块导入推荐使用从根路径导入的写法,比如Node.js就使用相对路径的方式导入模块 例如 有如下目录 demo_project/module_a/file_a.py [func ...

  10. python模块os测试文件是否存在及基础原信息获取

    python模块os测试文件是否存在及基础原信息获取 在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路 ...

最新文章

  1. LOJ 2721 「NOI2018」屠龙勇士——扩展中国剩余定理
  2. 以后谁再问你【跳跃表】,就把这文章扔给他!
  3. 下载 mysql 拖_mysql数据库托从
  4. FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
  5. 上周上线碰见的ORA-00054错误回放
  6. python实现http下载文件-Python实现http文件下载
  7. ZOJ3261并查集逆向处理
  8. 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS 并发标记清除收集器 )
  9. Python中的sort()方法使用基础
  10. iOS之深入解析KVC的底层原理和自定义KVC的实现
  11. tomcat(20)基于JMX的管理
  12. 工作404-判断浏览器函数
  13. 骚操作,IDEA防止写代码沉迷插件 !
  14. R语言编程基础(1)
  15. Java构建指定大小文件
  16. mysql事务总结_mysql事务特点总结
  17. 高清图片免费下载网站
  18. c语言烟花代码devc,C语言烟花程序
  19. js MessageBox 类 无插件,支持弹出层(原页面div 或者 div代码),消息框(alert confirm)
  20. 计算机软件水平考试(软考)-程序员介绍

热门文章

  1. 《敏捷软件开发-原则、方法与实践》-Robert C. Martin
  2. DataGridView的单元格内容即时更新方法
  3. 网域高科家具行业网站开发管理系统
  4. Oracle备份与恢复 关于expdp导出远程数据到本地的使用
  5. java 课后习题 判断两个圆是否相交 圆和直线的位置关系
  6. Tomcat Post请求参数长度限制
  7. webpack -- 无法将“webpack”项识别为 cmdlet 。。。
  8. js 通用 1000 金额 三位格式化 1,000
  9. 【Python】Python库之数据可视化
  10. 【Python】字典类型