内置函数(二)

abs()    #返回绝对值--返回的是正数
enumerate("可迭代对象","序号起始值") #默认起始值为0,返回的是元组形式
lst = [11,22,33]
print([i for i in enumerate(lst,1)])
# (1,11) (2,22) (3,33)
max("可迭代对象") #求最大值
min("可迭代对象") #求最小值
sum() #求和,字符串不可用
dir() #查看当前函数的方法
"""
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件
sep: 打印多个值之间的分隔符,默认为空格
end: 每一次打印的结尾,默认为换行符
flush: 立即把内容输出到流文件,不作缓存
""" print(sep=" ",end="\n") #默认
print(1,2,3,sep="*") # 1*2*3
print(111,end="")
print(22) #111222 print(list("alex")) # ['a', 'l', 'e', 'x']
print(dict(a=1,b=2)) # {'a': 1, 'b': 2}
zip() # 拉链 -- 按照最少的进行合并,打包成一个个元组。若是字典,取键
lst = ["a","b","c"]
lst1 = [1,2,3,4]
print(list(zip(lst,lst1))) # [('a', 1), ('b', 2), ('c', 3)]
print(zip(lst,lst1)) # <zip object at 0x00000223D0834FC8> zip函数的地址 print(dict(zip(lst,lst1))) # {'a': 1, 'b': 2, 'c': 3}

匿名函数

变量 = lambda 形参:返回值
"""
1.匿名函数定义没有def,可以赋值给变量,便于调用
2.lambda后面直接加形参(形参可不写,也可接受多个)用逗号隔开
3.必须有返回值,返回一个数据类型,可以是任意的数据类型,也可以将多个返回值写成一个数据类型
4.函数名是lambda,一行函数
"""
print((lambda x,y:x+y)(2,3))  #5
print(lambda x,y:x+y(2,3)) #lambda 地址
# 1
ls = [lambda i:i*i for i in range(5)]
print(ls[2](5)) #25
# 上面函数解开:
ls = []
for i in range(5):
def func(i):
return i*i
ls.append(func)
print(ls[2](5)) # 2
ls = [lambda :i*i for i in range(5)]
print(ls[2]()) # 没有传进去参数,默认最后4*4 = 16
# 解开:
lst = []
for i in range(5):
def func():
return i*i
lst.append(func)
print(lst[2]()) #3
lst = [x for x in (lambda :i**i for i in range(5))]
print(lst[2]())
#解开:
lst1 = []
def func():
for i in range(5):
def foo():
return i**i
yield foo for x in func():
lst1.append(x)
print(lst1[2]())

内置函数(三)

# format()
print(format(13,"08b")) # 8位2进制
print(format(13,"08d")) # 10进制
print(format(13,"08o")) # 8进制
print(format(13,"08x")) # 16进制
# filter(function,iterable) # 筛选过滤
# 例:
lst=[1,2,3,4,5,6,7]
ls = filter(lambda x:x>3,lst)
print(list(ls)) # [4, 5, 6, 7] #或者:
ls = [i for in filter(lambda x:x>3,lst)]
print(ls)
# map(function,iterable)  # 映射,把每个元素取出操作
print(list(map(lambda x:x*x,[1,2,3,4])))
# [1, 4, 9, 16]
reversed("有序的可迭代对象")  # 反转
"""
产生一个迭代器,操作时不改变原数据,重新开辟,因此地址不同
字符串、列表、元组都可以用
"""
ls = reversed("123")
for i in ls:
print(i) # 3 2 1
sorted(iterable,key = "函数名",reverse = False)
# 默认是升序, key是排序规则,reverse默认是升序
# reverse = True 是降序
ls = [1,5,6,98,6,7,3]
print(sorted(ls)) #[1, 3, 5, 6, 6, 7, 98]
print(sorted(ls,reverse=True)) #[98, 7, 6, 6, 5, 3, 1]
reduce() #累计算
from functools import reduce
print(reduce(lambda x,y:x-y,[1,2,3,4,5])) # -13

闭包

嵌套函数内,使用非全局变量就是闭包
保证数据的安全性,装饰器使用
print(ret.__code__.co_freevars) # 获取的是自由变量,不会自动销毁
ret.__closure__ 判断是否是闭包
def func():
a = 1
def f1():
def foo():
print(a)
return foo
return f1
func()()() # ret = func()
# a = ret()
# a()

最新文章

  1. Vue.js——60分钟组件快速入门(上篇)
  2. MailKit---状态更改和删除
  3. linux下安装postgresql
  4. Canvas绘画功能(待补充)
  5. Scala中的Apply
  6. VNC-Server installation on CentOS 7
  7. c++ STL stack &amp; queue
  8. require 增量更新与版本管理
  9. VK Cup 2017 - Квалификация 1
  10. C#使用GUID
  11. Django admin组件使用
  12. count性能
  13. 基于bootstrap的datepicker
  14. Linux 第八天
  15. linux基础学习之软件安装以及常用命令
  16. 1、Python模块和包(0602)
  17. object对象转string字符串
  18. 登陆网页模板 - 1 (HTML+CSS)
  19. Django2.0 path和re_path使用
  20. 【bzoj2754】 SCOI2012—喵星球上的点名

热门文章

  1. JavaSE总结(一)
  2. ThinkPHP 添加数据到数据库失败
  3. TP框架基础(四)----添加数据
  4. python中的元类(metaclass)
  5. JSTL和EL简介
  6. tomcat 启动是 jdbc警告
  7. 记kepServer读写西门子PLC
  8. 03-Django模型类
  9. sql server 2008 外键的级联操作
  10. 基于spring的观察者模式