day08-内置函数和匿名函数
1. 1)网络编程只能是二进制。2)照片和视频也是以二进制储存。 3)html网页爬取到的也是二进制编码。 2. 非常重要的4个内置函数:zip ,filter,map,sorted
1)zip:
例子1:
l1 = [1,2,3]
l2 = ['a','b','c']
for i in zip(l1,l2): # zip(l1,l2) 是迭代器。拉链方法。
print(i)
#(1,'a')
#(2,'b') 例子2:把下面表格打印出来。
# name age salary
# tom 18 10000
# marry 20 30000
# alex 35 1000000
例子2.1
name = ('tom','marry','alex')
age = (18,20,35)
salary = (10000,30000,1000000)
for a,b,c in zip(name,age,salary):
print(a,b,c)
#tom 18 10000
#marry 20 30000
#alex 35 1000000
例子2.2
dic1 = {'name':'tom','age':18,'salary':10000}
dic2 = {'name':'marry','age':20,'salary':30000}
dic3 = {'name':'alex','age':35,'salary':1000000}
lis = [dic1,dic2,dic3]
for i in lis:
print('{0},{1},{2}'.format(i['name'],i['age'],i['salary']))
例子2.3
dic1 = dict(name = 'tom',age = 18,salary = 10000)
dic2 = dict(name = 'marry',age = 20, salary = 30000)
dic3 = dict(name = 'alex',age = 35,salary = 1000000)
lis = [dic1,dic2,dic3]
for i in lis:
print(i['name'],i['age'],i['salary']) 2) filter: 筛选。ret = filter(被调用的函数,实参),filter调用函数,把实参传入函数执行代码,筛选出可以让表达式为True的实参,ret接收实参。
例子1:把奇数筛选出来。
def func(x):
return x % 2 == 1 #当表达式为True,ret才接收筛选过的实参。
ret = filter(func,[1,2,3]) # ret 是迭代器。filter调用函数func,把实参[1,2,3]循环传入函数func。
for i in ret:
print(i)
例子2:把字符串筛选出来。
def is_str(s):
if type(s) == str:
return True # 还可以这样写: return type(s) == str
ret = filter(is_str,[1,'hello',4,36,'python'])
for i in ret:
print(i)
例子3:筛选列表中不是空白的元素(空字符串,空列表,空格,None等等),然后把它们存放在新列表中。注意:' '空格这个字符串为True。
def is_not_empty(s):
return s and str(s).strip() #当s and str(s).strip()为True时,ret才接收实参。因为当s是整数1,2,5,6,是int,没有strip属性,所以使用str(s)把int
ret = filter(is_not_empty,[1,2,'as','',[],' ',5,6,None]) #强转为str。
l = []
for i in ret:
l.append(i)
print(l) 3) map:
ret = map(abs,[-1,20,90,-18]) # map调用abs绝对值函数,把实参传入到abs函数里面取绝对值,然后ret接收。ret是迭代器。
for i in ret:
print(i) filter:ret接收实参<=总个数,但不会改变实参的值。map:ret接收实参等于总个数,但可能改变实参的值。 4) sorted:
例子1:
l = [-1,20,2,-10]
l.sort(key=abs) #按绝对值的大小从小到大排序,不产生新的对象。
print(l)
例子2:
l = [-1,20,2,-10]
l.sort()
print(l) #从小到大排序,不产生新的对象。
print(sorted(l)) #产生新的对象。可以使用print(id(l))和print(id(sorted(l)))查询是否产生新对象。以上两种方法的执行结果都是[-10, -1, 2, 20]。
例子3:
print(sorted(l,reverse=True)) #reverse=True把sorted(l)排序反转。
print(sorted(l,key=abs,reverse=True)) #按绝对值排序,接着反转。
例子4:
l = ['a','asdfasdf','asdf','aa',' ']
ret = sorted(l)
print(ret) # 执行结果:[' ', 'a', 'aa', 'asdf', 'asdfasdf']
例子5:
l = ['a','asdfasdf','asdf','aa',' ']
ret = sorted(l,key=len) # 按字符长度进行排序
print(ret) # 执行结果:['a', 'aa', 'asdf', ' ', 'asdfasdf'] a = list(range(100)[0:3]) #range(100)切片取前面三个元素,然后强转为list。
for i in a :
print(i) 2.匿名函数:
1)参数可以有多个,使用逗号隔开;只写一行;返回值可以是任何数据类型。
lamb = lambda x,y : x+y # x+y是返回值
print(lamb(1,2)) 2)匿名函数面试题:
A = lambda x : x*2
B = lambda x : x*4
x = 2
x = A(x) # x = 4
x = B(x) # x = 16
x = A(x) # x = 32
print(x) #执行结果是32
day08-内置函数和匿名函数的更多相关文章
- 学习Pytbon第十天 函数2 内置方法和匿名函数
print( all([1,-5,3]) )#如果可迭代对象里所有元素都为真则返回真.0不为真print( any([1,2]) )#如果数据里面任意一个数据为真返回则为真a= ascii([1,2, ...
- python——内置函数和匿名函数
内置函数 接下来,我们就一起来看看python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这 ...
- python(day16)内置函数,匿名函数
# add = lambda x,y:x+y # print(add(1,2)) # dic={'k1':10,'k2':100,'k3':30} # def func(key): # return ...
- python之路——内置函数和匿名函数
阅读目录 楔子 内置函数 匿名函数 本章小结 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们 ...
- Go语言 - 函数 | 作用域 | 匿名函数 | 闭包 | 内置函数
函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 介绍 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数可以赋值给变量 函数 ...
- python 内置函数和匿名函数
内置函数 截止到python版本3.6.2,现在python一共为我们提供了68个内置函数. Built-in Functions abs() dict() help() min() ...
- 生成器的send方法、递推函数、匿名函数及常用内置函数
生成器的send方法 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 什么是send方法? send方法相当于高级的next方法,send ...
- Python_内置函数和匿名函数
楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...
- python 07篇 内置函数和匿名函数
一.内置函数 # 下面这些要掌握 # len type id print input open # round min max filter map zip exec eval print(all([ ...
- python之内置函数,匿名函数
什么是内置函数? 就是Python给你提供的,拿来直接用的函数,比如print,input等等.其实就是我们在创建.py的时候python解释器所自动生成的内置的函数,就好比我们之前所学的作用空间 内 ...
随机推荐
- JavaWeb之搭建自己的MVC框架(三)
1. 前言 在前两节的内容中,我们完成了一个基本的框架搭建.但是如果我们在前端请求中增加参数,我们要怎么传递到后台方法呢?接下来我们就来研讨这部分内容. 2. 实现 ( ...
- Idea 中的快捷键(mac)
Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎ Return/Enter ⌫ Delete ⌦ 向前删除键(Fn+Delete) ↑ 上箭头 ...
- 线上环境 分析java问题 常见命令
在生产上进程需要分析jvm运行情况,今天分享几个自己常用的命令,持续更新,欢迎补充 1.jps jstack -l {pid} > jstack.log #查看线程快照信息 2.jps jmap ...
- java课程之团队开发冲刺阶段1.10
一.总结昨天任务: 1.已完成系统规划总结 二.遇到的问题: 1,整合的过程中并没有的很好的处理其中的关系,应当将常用的方法总结成一个工具类便于使用.这样在二次使用的时候会便捷不少. 三.今天的任务 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:HTML DOM 节点列表
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Cpp:"->"和"."的区别
environments:gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project) class data{ publi ...
- 分享-QQ/微信/微博(环境搭建)
QQ环境搭建
- 详细的git入门级别,从安装到实战
拥有自己码云开源网站,想要上传项目到码云怎么操作?公司新技术提升由Svn转为Git,慌不慌?想要从Github开源网站下载开源项目,难道还依赖直接下载项目然后解压导入项目工程?下面可以通过及其简易且好 ...
- 萤火虫系统(firefly) RK3399 python3 安装 spicy
最近一直在研究深度学习,公司里正好也有个项目是需要在RK3399的板子上跑人脸识别. 原本在linux_x86系统上轻轻松松装的环境到了RK3399板子上(firefly系统)安装起来真的非常麻烦,需 ...
- php多态模拟
在PHP中,多态是最常用到的一种特性.所谓多态,是指同一个东西不同形态的展示.在PHP中,我们这样定义多态,一个类被多个子类继承,如果这个类的某个方法在多个子类中表现不同的功能,那么这种行为我们就称其 ...