PythonDay13
第十三章
今日内容
匿名函数
内置函数二
闭包
匿名函数
匿名函数就是一行函数,关键字是lambda
lambda x:x
# lambda 参数:返回值
x 是普通函数的形参 可以不定义形参
:x 是 普通函数的返回值(只能返回一个数据类型)
f = lambda x:x+6
print(f(1)) # 结果:7
print(f.__name__) # 查看函数的名字 函数名为lambda
lst = [lambda :i for i in rang(5)]
print(lst[0]())
# 结果:4
面试题拆解:
lst = []
for i in range(5):
def func():
return i
lst.append(func)
内置函数二
字典的合成方式
dict([(1,2),(3,4)]) # 中括号也可以换成小括号
# {1: 2, 3: 4}
dict(k=1,v=2,c=3)
# {'k': 1, 'v': 2, 'c': 3}
dic1 = {"key1":1,"key2":2}
dic2 = {"a":1,"b":2}
print(dict(**dic1,**dic2))
# {'key1': 1, 'key2': 2, 'a': 1, 'b': 2}
print()
sep:每个元素之间分割的字符,默认是" "空格
end:print执行完后的结束语句,默认是\n
file:文件句柄,默认是显示到屏幕,也可以写进文件,例如:
print(1,2,3,4,file=open("test","w",encoding="utf-8"))
sum
算出可迭代对象中的和,只能算int
abs
绝对值
dir
print(dir(list))
print(dir(str))
# 查看当前对象所有方法,返回的是列表
zip
拉链
lst1 = [1,2,3,4]
lst2 = ['a','b','c','d','e']
面试题:
print(dict(zip(lst1,lst2)))
# {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
format
print(format('alex','>20')) # 左对齐
print(format('alex','<20')) # 右对齐
print(format('alex','^20')) # 居中
进制转换
print(format(10, "b")) # bin 二进制
print(format(10, "08o")) # oct 八进制
print(format(10, "08x")) # hex 十六进制
print(format(0b1010), "d") # 十进制
reversed
反转
print(list(reversed("alex")))
# 得到的是迭代成列表之后的反转
# 得到的是一个新列表
filter
过滤
lst = [1,2,3,4,5,6]
print(list(filter(lambda x:x>1,lst)))
# 过滤掉大于1的数字
lst = [{'id':1,'name':'alex','age':18},
{'id':1,'name':'wusir','age':17},
{'id':1,'name':'taibai','age':16},]
print(list(filter(lambda x:x['age']>16,lst)))
# 留下年龄大于16的信息
map
映射函数(将可迭代对象中的每个元素执行指定的函数)
print(list(map(lambda x,y:x+y,[1,2,3],[11,22,33,44])))
# 将每个列表的对应元素相加 print([i*8 for i in [1,2,3,4]])
# 8,16,24,32
sorted
print(sorted([1,-22,3,4,5,6],key=abs)) # key指定排序规则
# 排序 执行了绝对值之后的列表 lst = ["三国演义","红楼梦","铁道游击队","西游记","水浒传","活着"]
print(sorted(lst,key=len))
# 通过长度排序 lst = [{"age": 19}, {"age1": 20}, {"age2": 80}, {"age3": 10}]
# print(sorted(lst, key=lambda x: x.values()))
print(sorted(lst, key=lambda x: x.keys(), reverse=True))
# 通过键和值排序
max,min
最大值和最小值
reduce
from functools import reduce # 累计算 # 内部实现原理
def func(x,y):
return x+y
print(reduce(func,[1,2,3,4,5])) print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
闭包
闭包
# 1.在嵌套函数中,使用非本层且非全局变量的就是闭包
# print(inner.__closure__) 判断是否是闭包 返回None就不是 # 闭包的作用:
# 1.保护数据的安全性
# 2.装饰器
PythonDay13的更多相关文章
- Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)
今日主要内容 1. 函数的嵌套定义 2. global.nonlocal关键字 3. 闭包及闭包的应用场景 4. 装饰器 1. 函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有 ...
- 路飞学城Python-Day13
[2.常用模块-模块的种类和导入方法] 1.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长.越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分 ...
- python-day13(正式学习)
闭包函数 闭包 闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用域而非全局作用域的变量的引用).闭包指的是:函数内部函数对外部作用域而非全局作用域的引用. 额...这里提示一下闭包!=自 ...
- 初学Python-day13 文件处理1
IO操作 一.os模块 作用:包含了操作系统的基本功能,提供了非常丰富的用来处理文件和目录的函数或方法. 1.属性 函数名 函数说明 name 获取操作系统的类型 uname 获取操作系统的信息(li ...
随机推荐
- 51 Nod 1069 Nim游戏
分析: a1 xor a2 xor a3 ... xor an !=0 则为必胜态 a1 xor a2 xor a3 ... xor an ==0 则为必败态 也就是说只要计算异或值,如果非零则A赢, ...
- k8s删除节点后再重新添加进去(踩坑)
开启本地集群,发现一台节点出问题了,想删除再换一台节点,结果就踩坑了,还好本地有好几套环境. 再master节点执行以下命令 [root@k8s-master ~]# kubectl drain k8 ...
- Selenium 日期控件处理
在WEB测试时,我们会碰到需要输入日期的情况,如果输入框能直接输入,那最好不过了.但是很多时候,输入框是不可输入的,必须的点击日期控件才行. 现在就来聊聊对日期控件的两种操作方法,我们以12306网站 ...
- C++入门经典-例6.5-连接字符串
1:运行代码如下: // 6.5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> usin ...
- Java NIO学习
Java NIO(转自:http://www.iteye.com/magazines/132-Java-NIO#585) Java NIO提供了与标准IO不同的IO工作方式: Channels,Buf ...
- java实现二分法查找
一 前提 使用二分法查找的前提是:有序的数组,没有重复的数据元素.如果没有排序过的,需先排序. 二分法查找时使用场景为:数据量较大时 二 代码 package com.xiao.day01; publ ...
- 12个Sublime Text应用技巧[转载]
本文为您提供Sublime Text编辑器的12个技巧和诀窍,深入挖掘这个看似简洁的代码编辑器,背后所隐藏的实现各种高级功能的无限可能. 1) 选择 以下是一些Sublime Text选择文本的快捷键 ...
- Leetcode: 二分搜索法
package com.LeetCode; /** * 算法:二分搜索法查找一个值,并返回索引值 * https://leetcode.com/problems/search-insert-posit ...
- python - 函数any() 和 all() 的区别
转自:https://www.cnblogs.com/nulige/p/6128816.html any()与all()函数的区别: any是任意,而all是全部. 版本:该函数适用于2.5以上版本, ...
- 第一章 SpringCloud简介
1.架构演进与微服务 单体架构:一个归档包包含所有的功能的应用程序. 缺点: 复杂性逐渐变高 技术债务逐渐上升 部署速度逐渐变慢 阻碍技术创新 无法按需伸缩 架构演进: 单体架构 SOA 微服务 微服 ...