day13

内置函数2

重要的

abs():求绝对值——返回的都是正数

# lst = [-1,-2,-3]
# for i in lst:
# print(abs(i))
# print([abs(i) for i in lst])
# s = -123
# print(abs(s))

enumerate('可迭代对象','序号的起始值'):枚举,默认的起始值是0

# lst = [-1, -2, -3]
# print([i for i in enumerate([abs(i) for i in lst])])
# lst = [11, 2, 3, 4, 5, 6, 7]
# new_lst = []
# for i in enumerate(lst):
# new_lst.append(i)
# print(new_lst)
# print([i for i in enumerate(lst,1000)])

max('可迭代对象',key = abs):求最大值,比的是当前编码集的值

# lst = [11, 2, 3, 4, 5, 6, 7,1231,2131]
# print(max(lst))

min('可迭代对象',key = abs):取最小值

# lst = [11, 2, 3, 4, 5, 6, 7,1231,2131]
# print(min(lst))

sum([1,2,3,4,5],100(前面总数加这个数)):求和

# lst = [11, 2]
# print(sum(lst,100)) # 结果是113

print(sep=‘ ’,end=‘\n’) sep多个元素的连接符

# print(sep=' ', end='\n')  # 默认
# print(1,2,3,sep='$')
# print(1,2,3,end='%')
# print(4,5)

range()

# python3:
# g = range(0,10) # 可迭代对象
# g.__iter__() # python2:
# range(0,10) # 获取是一个列表
# xrange(0,10) # 获取是一个可迭代对象
---------------------------------------------------------
# from collections import Iterable,Iterator
# print(isinstance(g,Iterable))# 判断是否是可迭代对象
# print(isinstance(g,Iterator))# 判断是否是迭代器

open():写入文件

# print(12345,file=open("t1.txt","w",encoding="utf-8"))

list()

# print(list('alex')) # 结果是['a', 'l', 'e', 'x']

dict()

# print(dict(key=1,a='alex'))
# print(dict(((1,2),(2,3),(3,4))))
# print(dict([i for i in enumerate(range(20),1)]))

zip('可迭代对象','可迭代对象'):拉链,按照最少的进行合并

# lst1 = [1,2,3,4,5]
# lst2 = ['a',"b","c","d","f","e"]
# print(dict(list(zip(lst1,lst2))))
# print(dict(zip(lst1,lst2)))

dir():查看当前函数的方法

# print(dir(list))  # 查看当前函数的方法

匿名函数——一行函数

f = lambda x,y:x+y
print(f(1,2)) f = lambda x,y:(x,y)
print(f(1,2)) # 结果为元组 print((lambda x:x)(2))# 同一行定义 同一行调用

匿名函数的名字就是lambda

lambda 关键字——定义函数

x,y:形参——可以不写

x+y:返回值(必须写,可以写None)——只能返回一个数据类型

# f = lambda x,y:x+y
# print(f(1,2))
# print((lambda x,y:x+y)(1,2)) # print(type((lambda x,y:(x,y))(1,2)))
---------------------------------------------------------
# f = lambda x,y:x+y
# print(f(1,2))
# print(f.__name__) # print((lambda x:x)(2))
---------------------------------------------------------
# lst = [lambda i:i*i for i in range(10)]
# print(lst[2](20)) # lst = []
# for i in range(10):
# def func(i):
# return i*i
# lst.append(func)
# print(lst[2](20))
---------------------------------------------------------
# lst = [lambda :i*i for i in range(10)]
# print(lst[2]()) # lst = []
# for i in range(10):
# def func():
# return i*i
# lst.append(func)
# print(lst[2]())
---------------------------------------------------------
# lst = list((lambda i:i*i for i in range(5)))
# print(lst[1](55)) # lst = [x for x in (lambda :i**i for i in range(5))]
# print(lst[2]())
---------------------------------------------------------
# lst = []
# def func():
# for i in range(5):
# def foo():
# return i**i
# yield foo
# for x in func():
# print(x)
# lst.append(x)
# print((lst[2]()))

最重要的内置函数(面试比较重要的)

format()函数

format(13,>20):右对齐(不常用)

format(13,<20):左对齐(不常用)

format(13,^20):居中(不常用)

format(13,'08b'):转换成二进制——08(可有可无)

format(13,'08d'):转换成十进制——08(可有可无)

format(13,'08o'):转换成八进制——08(可有可无)

format(13,'08x'):转换成十六进制——08(可有可无)

# print(format(13,">20"))  # 右对齐
# print(format(13,"<20")) # 左对齐
# print(format(13,"^20")) # 居中
------------------------------------
# print(format(13,"08b")) # 2
# print(format(13,"08d")) # 10
# print(format(13,"08o")) # 8
# print(format(12,"08x")) # 16
filter():过滤

filter('函数','可迭代对象')

写函数的时候可以指定过滤条件

# lst = [1,2,3,4,5,8,5,6,76,7,7]
# def func(s):
# return s > 3
# print(list(filter(func,lst)))
# func就是自己定义一个过滤条件,lst要迭代的对象
# print(list(filter(lambda s:s>3 ,lst)))
map():对象映射

map('函数','可迭代对象')

对可迭代对象中每个元素进行加工

# lst = [1,2,3,4,5]
# def func(s):
# return s*s
# mp = map(func,lst)
# print(mp)
# print(list(mp))
--------------------------------------
# print(list(map(lambda s:s*s,lst)))
reversed():翻转

对可迭代对象进行翻转

支持所有可迭代对象(有序),原数据不变

# lst = [1,2,3,4,5]
# lst1 = list(reversed(lst))
# print(lst)
# print(lst1)
sorted():排序

sorted('可迭代对象',key='函数名',reverse = True)

key是指定排序的规则

# lst = [1,23,34,4,5,213,123,41,12,32,1]
# print(sorted(lst)) # 升序
# print(lst)
# print(sorted((lst),reverse=True)) # 降序
# dic = {"key":1,"key1":78,"key3":56}
# print(sorted(dic,key=lambda x:dic[x],reverse=True))

不用加list(),默认升序,加了reverse = True变成降序,原数据不变

reduce:累计算

reduce('函数','可迭代对象')

# from functools import reduce
# print(reduce(lambda x,y:x-y,[1,2,3,4,5]))

高阶函数(有key):sorted、filter、map、max、min、reduce

闭包

  • 闭包:在嵌套函数内,使用非全局变量(且不是本层变量)就是闭包

  • 闭包的作用:

    保证数据的安全性

    装饰器的本质

  • 验证是否是闭包:closure

了解:

# print(ret.__code__.co_freevars)  # 获取的是自由变量
# print(ret.__code__.co_varnames) # 获取的是局部变量
# def func():
# a = 1
# def f1():
# def foo():
# print(a)
# return foo
# return f1
# ret = func()
# a = ret()
# a()
# func()()()
---------------------------------------------------------
# avg_lst = []
# def func(pirce):
# avg_lst.append(pirce)
# avg = sum(avg_lst) / len(avg_lst)
# return avg
# print(func(150000))
# print(func(160000))
# print(func(170000))
# print(func(150000))
# print(func(150000))
---------------------------------------------------------
# def func():
# avg_lst = []
# def foo(pirce):
# avg_lst.append(pirce)
# avg = sum(avg_lst) / len(avg_lst)
# return avg
# return foo
# ret = func()
# print(ret(150000))
# print(ret(160000))
# print(ret(170000))
# print(ret(150000))
# print(ret(180000))
# print(ret.__closure__) # (<cell at 0x0030F150: list object at 0x002B35A8>,)

day13——重要内置函数、匿名函数、闭包的更多相关文章

  1. python学习日记(内置、匿名函数练习题)

    用map来处理字符串列表 用map来处理字符串列表,把列表中所有水果都变成juice,比方apple_juice fruits=['apple','orange','mango','watermelo ...

  2. python基础学习Day14 内置函数 匿名函数

    一.内置函数里几个高频重要函数 (1)min\max函数的用法 以min函数的为例: min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值). l1 =[(,),(, ...

  3. python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)

    内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...

  4. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  5. Golang函数-匿名函数与闭包函数

    Golang函数-匿名函数与闭包函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  6. python(内置高阶函数)

    1.高阶函数介绍: 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数. 常见的高阶函数:map().sorted( ...

  7. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  8. JMeter 内置日期(时间)函数总结

    JMeter 内置日期(时间)函数总结   by:授客 QQ:1033553122 1. 测试环境 apache-jmeter-3.3 下载地址: http://jmeter.apache.org/c ...

  9. Hive 文件格式 & Hive操作(外部表、内部表、区、桶、视图、索引、join用法、内置操作符与函数、复合类型、用户自定义函数UDF、查询优化和权限控制)

    本博文的主要内容如下: Hive文件存储格式 Hive 操作之表操作:创建外.内部表 Hive操作之表操作:表查询 Hive操作之表操作:数据加载 Hive操作之表操作:插入单表.插入多表 Hive语 ...

  10. python 练习题:请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串

    # -*- coding: utf-8 -*- # 请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串 n1 = 255 n2 = 1000 print(hex(n1)) pr ...

随机推荐

  1. STL next_permutation 全排列

    调用方法: ]={,,,}; )){ ;i<;i++) printf("%d ",arr[i]); puts(""); } 测试效果: 注:可以看到1 2 ...

  2. UmiJS可插拔的企业级 react 应用框架,配合ant-design-pro使用

    入门非常简单 # 安装 $ yarn global add umi # 或者 npm install -g umi # 新建应用 $ mkdir myapp && cd myapp # ...

  3. MVC WebApi Swagger帮助文档 接口用法

    1.WebApi在解决方案Apps.WebApi中 2.将Apps.WebApi设置为启动项目之后,可以直接浏览到Api的帮助文档,并直接进行调试 3.登录接口 4.登录获取的token来访问其他接口 ...

  4. 【转】目前为止最透彻的的Netty高性能原理和框架架构解析

    转自:https://zhuanlan.zhihu.com/p/48591893 1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器 ...

  5. Jenkins 使用 SonarQube 扫描 Coding

    Jenkins 使用 SonarQube 扫描 Coding   系统环境: Jenkins 版本:2.176 SonarQube 版本:7.4.0 一.SonarQube 介绍 1.SonarQub ...

  6. 【转发】SqlServer数据库表生成C# Model实体类SQL语句

    已知现有表T1 通过运行下面的sql即可,先配置表名. declare @TableName sysname = 'T1' declare @Result varchar(max) = ' /// & ...

  7. easyui datagrid的行编辑器editor 如何实现新增时可修改,编辑时,不可修改

    项目出现一个需求,要求用户界面的用户名,新增时,可自由输入,编辑时,不可修改 html页面 <table id="gridlist" data-bind="data ...

  8. 运维笔记--Debian/Ubuntu系统离线安装pymssql,连接SqlServer

    场景描述: 开始之前,先对Debian和Ubuntu操作系统做个了解,两者都是Linux阵营中很有影响力的发行版本,可以简单理解成“Ubuntu源自Debian,两者系统操作命令基本相同,相比Ubun ...

  9. C# Selenium操作指南,关闭黑色CMD窗口/禁用图片/隐藏浏览器等

    引用部分:1. 2. 配置部分: ChromeDriverService driverService = ChromeDriverService.CreateDefaultService(); dri ...

  10. GoldenGate 19.1 发布

    GoldenGate 19.1 新特性 For the Oracle Database ➢ Oracle Database 19c Support 支持从Oracle DB 19c抽取和投递数据,包括 ...