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解释器所自动生成的内置的函数,就好比我们之前所学的作用空间 内 ...
随机推荐
- C++逐行读取txt
C++读取txt文件的时候可以使用std::ifstream来实现,如果打开文件失败的话,其变量会是空的,所以可以用来判断是否打开成功. #include <stdlib.h> #in ...
- Maven:程序包不存在,找不到符号
maven build时出现了以下的错误: 程序包xx.xx不存在,xxx找不到符号 原因一:DAO层依赖Service接口层的Bean类,在pom.xml中添加了对Service的依赖,也因此引入了 ...
- 步进电机加减速S曲线算法
一.Sigmoid 函数 1.1 Sigmoid函数原型 1.2 sigmoid函数波形: 由图形可看出在-10时已经接近于0,一般取值区间在[-5,5]. 1.3 sigmoid函数的导数 转载CS ...
- UML-什么是用例实现(场景实现)?
1.总览图 解释: 用例--->领域模型 用例+领域模型--->设计模型(仅基于领域层的交互图) 2.什么是用例实现? 基于协作对象,如何在设计模型中实现某个用例.更确切的说是实现某个用例 ...
- CF round #622 (div2)
CF Round 622 div2 A.简单模拟 B.数学 题意: 某人A参加一个比赛,共n人参加,有两轮,给定这两轮的名次x,y,总排名记为两轮排名和x+y,此值越小名次越前,并且对于与A同分者而言 ...
- java 练习题带答案
第一题 int x = 1,y=1; if(x++==2 & ++y==2) { x =7; } System.out.println("x="+x+",y=&q ...
- Django的URL路由基础
一.概述 URL路由在Django项目中的体现就是urls.py文件,这个文件可以有很多个,但绝对不会在同一目录下.实际上Django提倡项目有个根urls.py,各app下分别有自己的一个urls. ...
- html属性,上传图片选择时只显示图片文件
这个实现比较简单,就是用到accept属性: 注意这里我们对这个file元素进行了隐藏,因为它默认呈现是下面这个样子的,并不好看. <div style="display:none;& ...
- EXCEL启动慢
启动太慢,一般是加载项的问题. 1.点击文件-EXCEL选项 2. 找到加载项,一般是COM加载项 3.选择com加载项 4.然后我出现了无法更改的情况,于是,我做了以下调整,进入office安装目录 ...
- Linux-编写简单守护进程
1.任何一个进程都可以将自己实现成一个守护进程 2.create_daemon函数要素 (1).子进程要等待父进程退出 (2).子进程使用setsid创建新的会话期,脱离控制台 (3).调用chdir ...