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++ 字母排序
char a[123] = {'Z', 's', 'p', 'l', 'j', 'r', 'q', 'v', 'n', 'm', 'C', 'F', 'D', 'B', 'A', '2', '0', ...
- outlook 2013邮件在服务器保留副本
用outlook2013来收邮件确实是比较方便,但是它收邮件默认设置是:当outlook2013将在线邮箱的邮件下载至本机计算机之后,它就会删除在线邮箱中的邮件.不知道是不是以前邮箱容量比较小,所以要 ...
- JavaScript 之 数据在内存中的存储和引用
栈和堆 大家都知道,JS中的数据类型包括两种:简单数据类型(String.Number.Boolean.undefined.null)和复杂数据类型(object). 在内存中分为栈区(stack)和 ...
- Leetcode -- 两数之和Ⅰ
1. 两数之和 题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标. 示例:给定 nums = [2, 7, 11, 15 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:Window - 浏览器对象模型
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- JS基础——脚本位置、数据类型、函数作用域
(一)脚本位置 JavaScript是嵌套到浏览器里的脚本语言:可放在3个位置: 1.写在头部(head里) <head> <meta charset="UTF-8& ...
- Java中包的基本管理与编译
在写程序的过程中,总会出现代码编译过关,但是项目偏偏报错的情况,遇到几种情况,都在此一一记录,希望以后少走弯路. 1.添加jsp文件的时候,会报错 Multiple annotations found ...
- pc页面在移动端浏览时部分字体放大,与pc字体大小不一致(Font Boosting)
最近做一个页面时,需要pc的页面在移动端浏览时保持pc的样式缩小.但是发现部分文字被放大了.看上去特别诡异.如下图 绿框是PC端查看时的正常样式,红框是移动端看的字体放大的诡异样式 是什么原因呢? 后 ...
- 创建DateFrame的常用四种方式
import pandas as pd %pylab 一.使用numpy创建 df = pd.DataFrame(np.arange(16).reshape((4,4)), index=list('a ...
- UML-如何画操作契约?
1.在编写契约过程中,发现之前的领域模型不对,此时是否需要修改? 需要修改.包括:概念类.属性.关联.这就是不断迭代和进化 2.用例中复杂场景里的状态变化细节,描述过多导致用例臃肿,让人看不下去,因此 ...