python学习8—函数之高阶函数与内置函数

1. 高阶函数

a. map()函数

  对第二个输入的参数进行第一个输入的参数指定的操作。map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释放。

# self define a function
def map_xuan(func,array):
temp = []
for i in array:
tem = func(i)
temp.append(tem)
return temp
num_1 = [1,2,5,6,9]
print(map_xuan(lambda x:x**2,num_1)) # builtin function map
# if the logic is simple, use lambda
# if the logic is complicated, use function
# the return value of map is a 迭代器
print(list(map(lambda x:x**2,num_1)))

b. filter()函数

  filter()函数对第二个输入的参数进行第一个参数指定逻辑的判断,并将符合逻辑的元素输出为一个迭代器,可用list()接收。

# filter function
# self define
def filter_xuan(func,array):
temp = []
for p in array:
if func(p):
temp.append(p)
return temp per = ['abs','acs','asdf','adfs','avr']
print(filter_xuan(lambda n:n.endswith('s'),per)) # builtin function
print(list(filter(lambda n:n.endswith('s'),per)))

c. reduce()函数

  reduce()函数缩减序列长度,将其按照第一个参数指定的运算操作压到一起得到一个最终值,可以指定运算操作的初始值也可以不指定。

# reduce function
from functools import reduce
num_2 = [1,2,3,100]
print(reduce(lambda x,y:x+y,num_2,7))
print(reduce(lambda x,y:x+y,num_2))

2. 内置函数

  python内置函数共68个,如下表:

  • all()遍历列表所有元素,若都为真则返回True,若有一个为假,则返回False。如果可迭代对象为空,也会返回True。相当于全部做与运算
  • any()相当有全部做或运算,有真则为真
  • bin()将十进制数转换为二进制数
  • bool()转化为布尔值:空、None、0为False
  • bytes()将字符串按照指定格式编码:bytes('你好',encoding='utf-8').decode('utf-8')
    • 用什么编码就用什么解码:ascii,gbk,utf-8
  • chr()按照ascii表返回数字对应的ascii符号
  • dir()输出某一个对象包含的方法
  • divmod()输出除法的商和余数:divmod(10,3),>>>(3,1)
  • eval()提取字符串中的数据结构,如果字符串里面是数学运算,则直接返回运算结果
  • hash()对不可变数据类型进行哈希运算,在同一次程序运行时,没修改过的变量哈希值不变,但是程序多次运行时,哈希值会一直改变,则不可以根据哈希值反推字符串
  • help()查看某个函数的定义文档
  • hex()将十进制数转换为十六进制
  • isinstance()判断对象是否为某个类型:isinstance(1,int)
  • globals()返回所有全局变量,locals()返回所有当前级别的局部变量
  • zip()拉链函数,将两个可迭代对象一一对应起来组成元组,所有元组组成一个迭代器,多余的元素忽略
  • max()函数对可迭代对象的每个元素从左到右一个数字(字母)一个的比较,并返回最大值。
    • 不同数据类型之间不能比较,例如数字与字符串
    • max(iterative, key = lambda x:x['age']),可以给max()指定比较的方法
  • ord()输出ascii表中符号对应的数字
  • pow(a,b) = a**b,次方运算;pow(a,b,c) = a**b % c
  • reversed(),反转序列
  • round()四舍五入
  • slice()切片,如slice(3,5) = [3:5],slice(1,5,2) = [1:5:2] = [start:stop:step]
  • sorted()排序,默认从小到大,
  • sum()求和
  • vars()没有参数的时候与locals()相同,vars(int)有参数的时候显示该对象int具有的全部方法
  • __import__(),可以导入字符串类型的文件名,而import只能导入文件名

python学习8—函数之高阶函数与内置函数的更多相关文章

  1. python学习笔记(五):装饰器、生成器、内置函数、json

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...

  2. Python学习日记(二十七) 反射和几个内置函数

    isinstance() 判断isinstance(obj,cls)中obj是否是cls类的对象 class Person: def __init__(self,name): self.name = ...

  3. python学习 day12 (3月18日)----(装饰器内置函数)

    读时间函数: # import time # def func(): # start_time = time.time() # 代码运行之前的时间 # print('这是一个func函数') # ti ...

  4. python学习笔记之装饰器、生成器、内置函数、json(五)

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面 ...

  5. python之三元表达式与生成式与匿名与内置函数(部分)

    目录 三元表达式 各种生成式 列表生成式(可同样作用于集合) 字典生成式 匿名函数 重要内置函数 map() zip() filter() reduce() 常见内置函数(部分) 三元表达式 三元表达 ...

  6. shell函数【参数传递及输入输出】&内置函数

    Linux——shell脚本基础3:shell函数[参数传递及输入输出]&内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND&OR 3 内置命令补充 ...

  7. python学习-41 装饰器 -- 高阶函数

    装饰器:本质就是函数.是为其他函数添加附加功能的. 原则:1.不修改被修饰函数的源代码2.不修改被修饰函数的调用方式 --- 装饰器的知识储备 装饰器=高阶函数+函数嵌套+闭包 高阶函数 1.高阶函数 ...

  8. Python小白学习之路(十六)—【内置函数一】

    将68个内置函数按照其功能分为了10类,分别是: 数学运算(7个) abs()   divmod()  max()  min()  pow()  round()  sum() 类型转换(24个) bo ...

  9. 【Python】从简单案列中揭示常用内置函数以及数据类型

    前面提到了BIF(内置函数)这个概念,什么是内置函数,就是python已经定义好的函数,不需要人为再自己定义,直接拿来就可以用的函数,那么都有哪些BIF呢? 可以在交互式界面(IDLE)输入这段代码, ...

  10. python成长之路第三篇(3)_内置函数及生成器迭代器

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...

随机推荐

  1. Ubuntu 没有 无线网 RTL8821ce 8111 8186

    1.将ubuntu的linux内核版本更改到4.14(其他版本不兼容这个无线网卡的驱动) 1.1 找到内核版本 #到 Ubuntu网站http://kernel.ubuntu.com/~kernel- ...

  2. XML 扩展部分

    引入命名空间 xmlns DTD缺点 1.不支持命名空间 2.支持的数据类型很少 3.DTD不可扩展 4.DTD不遵循XML规范 DTD的优点 简洁 schema 通过schema来解决DTD的不足 ...

  3. 剑指offer——70n个骰子的点数

    题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值出现的概率. 题解: 使用两个数组存每次投的点数 void theProbability(const int ...

  4. 剑指offer——44连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  5. 常用内置模块(二)——logging模块

    logging模块 一.logging作用 1. 控制日志级别  2. 控制日志格式  3. 控制输出的目标为文件 二.日志级别 logging.debug( logging.info( loggin ...

  6. docker学习日记一(镜像构建-container commit和image build)

    构建镜像的方式两种: 一.根据已有的container构建-docker container commit 二.根据已有的image构建-docker image build(推荐) containe ...

  7. 由dubbo开始看看所谓的软负载均衡

    待总结 我们在微服务架构中,常用一些注册中心进行订阅消费我们的服务,这时候对于同一服务请求会有不同的机器同时可以提供服务,这时是怎么选择哪一台机器去连接获取服务呢? 负载均衡设备作为纵跨网络2/7层交 ...

  8. 牛客练习赛48 D 小w的基站网络

    链接:https://ac.nowcoder.com/acm/contest/923/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...

  9. python获取全部股票每日基本面指标,用于选股分析、报表展示等

    接口:daily_basic 更新时间:交易日每日15点-17点之间 描述:获取全部股票每日重要的基本面指标,可用于选股分析.报表展示等. 积分:用户需要至少300积分才可以调取,具体请参阅本文最下方 ...

  10. ios网络学习------2 用非代理方法实现同步post请求

    #pragma mark - 这是私有方法,尽量不要再方法中直接使用属性,由于一般来说属性都是和界面关联的,我们能够通过參数的方式来使用属性 #pragma mark post登录方法 -(void) ...