day 16 - 1 内置函数(二)
内置函数(二)
reversed() 返回一个反向的迭代器
k = [1,2,3,4,5]
k.reverse() #反转
print(k) k = [1,2,3,4,5]
k2 = reversed(k) #反向的迭代器
print(k2)
for i in k2:
print(i)
#返回结果 反序的迭代器 <list_reverseiterator object at 0x0000000000B8FBA8>
#保留原列表,返回一个反向的迭代器
slice() 切片(函数,不怎么用)
l = (1,2,23,213,5612,342,43)
sli = slice(1,5,2)
print(l[sli])
print(l[1:5:2])
format() 格式化输出,它有很多功能
print(format('test', '<20')) #左对齐
print(format('test', '>40')) #右对齐
print(format('test', '^40')) #居中
bytes() 转换为 bytes 类型
# 我拿到的是gbk编码的,我想转成utf-8编码
print(bytes('你好',encoding='GBK')) # unicode 转换成GBK的 bytes
print(bytes('你好',encoding='GBK').decode('GBK')) #二进制又转为 GBK
print(bytes('你好',encoding='utf-8')) # unicode 转换成 utf-8 的 bytes
#bytes 用途
# 网络编程 只能传二进制
# 照片和视频也是以二进制存储
# html网页爬取到的也是编码
bytearray() 是一个 byte 类型的数组
b_array = bytearray('你好',encoding='utf-8')
print(b_array) #'\xe4\xbd\xa0\xe5\xa5\xbd'
print(b_array[0]) #
ord() 字符按照 unicode 转数字
print(ord('好'))
print(ord(''))
chr() 数字按照 unicode 转字符
print(chr(97))
ascii() 只要是 ascii 码中的内容 就打印出来,不是就转换成 \u
print(ascii('好'))
print(ascii(''))
repr() 用于百分号格式化输出
name = 'egg'
print('你好%r'%name)
print(repr('')) #是什么就打印什么
print(repr(1))
all() 判断是否有 bool 值为 False 的值
返回的值有有任意一个 False 整体就为 False
print(all(['a','',123]))
print(all(['a',123]))
print(all([0,123]))
any() 判断是否有 bool 值为 True 的值
返回的值有有任意一个 True 整体就为 True
print(any(['',True,0,[]]))
很重要的四个内置函数 zip filter map sorted
zip() 拉链方法 返回的是一个迭代器
木桶短板原则来拉链
l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
print(i)
filter() 过滤
filter() 函数接收一个函数 f 和一个 list,这个函数 f 的作用是对每个元素进行判断,返回 True 或 False,filter() 根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新 list
def is_odd(x):
return x % 2 == 1
#返回奇数
ret = filter(is_odd,[1,2,3,4,5,6,7,8,9]) #像如下的列表推导式
[i for i in [1,2,3,4,5,6,7,8,9] if x % 2 == 1] print(ret) #可见这里返回的是一个迭代器 for i in ret:
print(i) #返回字符串
def is_str(x):
return type(x) == str ret = filter(is_str,[1, 'hello',[],'',None,6,7,'world',12,17]) #''也属于字符串 for i in ret:
print(i)
#利用filter(),可以完成很多有用的功能 例如:删除 None 或者空字符串(不考虑 0 的问题)
def is_not_empty(s):
return s and len(str(s).strip()) > 0
return s and str(s).strip()
ret = filter(is_not_empty,[1,'hello',[],'',None,6,7,'world',12,17]) for i in ret:
print(i) #请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:
#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
from math import sqrt #开平方
def sqrts(s):
ret = sqrt(s)
return ret % 1 == 0 #除以一余零为整数
ret = filter(sqrts,range(1,101))
for i in ret:
print(i)
map 函数应用于每一个可迭代的项,返回的是一个结果 list。如果有其他的可迭代参数传进来,map 函数则会把每一个参数都以相应的处理函数进行迭代处理。map() 函数接收两个参数,一个是函数,一个是序列,map 将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回
ret = map(abs,[1,-4,6,-8])
print(ret)
for i in ret:
print(i)
filter 执行了 filter 之后的结果集合 <= 执行之前的个数
filter 只管筛选,不会改变原来的值
map 执行前后元素个数不变
值可能发生改变
sorted() 排序
sorted 使用场景:列表数据不大,且还要保留原有列表顺序的时候
因为 sorted 排序不改变原有列表 所以在内存空间就会有两个列表 k = [1,-4,6,5,-10] #从小到大进行排序
k.sort(key = abs) #sort 在原列表的基础上进行排序
print(k) # reverse=True 从大到小排序 reverse=False 从小到大排序(默认)
print(sorted(k,key=abs,reverse=True)) #sorted 生成了一个新列表 不改变原列表 占内存
print(k) ##根据列表中每一个元素的长度进行排序
h = [' ',[1,2],'hello world']
print(sorted(h,key=len))
匿名函数
带有 key 的五个函数,都可以和 lambda 函数组合
min max filter map sorted —— lambda
def add(x,y):
return x+y
print(add(10,20)) #匿名函数组成部分(不允许换行)
#函数名 = 匿名函数关键字 参,数 : 返回值(函数名是匿名函数赋值后才有的)
add = lambda x,y:x+y
print(add(1,2)) #直接后面传递实参
(lambda x,y: x if x> y else y)(101,102) #上面是匿名函数的函数用法。除此之外,匿名函数也不是浪得虚名,它真的可以匿名。在和其他功能函数合作的时候
取出字典中 value 最大值对应的 key 值
#用普通函数的写法
dic={'k1':10,'k2':100,'k3':30}
def func(key):
return dic[key]
print(max(dic,key=func)) #根据返回值判断最大值,返回值最大的那个参数是结果 #匿名函数的写法 一行搞定
print(max(dic,key=lambda k:dic[k]))
day 16 - 1 内置函数(二)的更多相关文章
- python---day14( 内置函数二)
内置函数二一:匿名函数 lambda函数 lambda 表示匿名函数,不需要用def 来申明. 语法: 函数名=lambda 参数:返回值 ----〉 案例:f=lambda n:n*n 例子01: ...
- python函数知识六 内置函数二、匿名函数与内置函数三(重要)
19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...
- day 16 - 2 内置函数(二)练习
内置函数(二)练习 1.用 map 来处理字符串列表,把列表中所有人都变成 sb,比方 alex_sbname=['alex','wupeiqi','yuanhao','nezha'] name=[' ...
- python 内置函数(二) 进阶函数 递归内容及二分法查找 知识点
1,lambda: 匿名函数 2.sorgted() 排序函数 3,filter() 过滤函数 筛选 4,map() 映射函数 5.递归 6.二分法 一. 匿名函数: lambda lamb ...
- Python入门-内置函数二
看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用 ...
- 内置函数二: map sorted filter
-----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------- ...
- day16:内置函数二
1,大作业,yield 返回之后可以对数据进行处理了就,注意函数的解耦,每一个小功能写成一个函数,增强可读性,写之前自己要先把整体功能分块,先做什么,在做什么 # 现在需要对这个员工信息文件进行增删改 ...
- Python内置函数二 (递归函数,匿名函数,二分法)
匿名函数 lambda() 语法: lambad 参数 : 返回值 def func(a,b): return a * b print(func(2,5)) a = lambda a ,b : a* ...
- 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数
1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...
随机推荐
- React Router路由传参方式总结
首先我们要知道一个前提,路由传递的参数我们可以通过props里面的属性来获取.只要组件是被<Router>组件的<component>定义和指派的,这个组件自然就有了props ...
- Cursor: Pin S Wait On X In The Top 5 Wait Events
Wait Events , Posted in: Technical Track Tags: Group Blog Posts, Oracle, Technical Blog Lately, wait ...
- 深入研究EF Core AddDbContext 引起的内存泄露的原因
前两天逛园子,看到 @Jeffcky 发的这篇文章<EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下>. 一开始只是粗略的扫了一遍没仔细看,只是觉得是多次 ...
- HTML/CSS 速写神器 Emmet语法
Emmet 是高效.快速编写 HTML 和 CSS 代码的一种插件,如果还不了解,请戳Emmet — the essential toolkit for web-developers,再根据你使用的编 ...
- 随心测试_软测基础_003< 理解测试 >
目标:对于软件测试基础,利用清晰的框架,掌握相关知识点. 做某件事情,思路如下: 以上过程,理解为:针对x一个对象,围绕特定的目的,利用具备的方法,按一定的流程做事情,并反复思考总结,这样做是否达到目 ...
- Linux下的邮件发送
centos 7的邮件发送 1配置文件vim /etc/mail.rc vim /etc/mail.rc 翻到文件尾部添加 set from=xxxxxxxx@163.com smtp=smtp.16 ...
- spark-MLlib之协同过滤ALS
协同过滤与推荐 协同过滤是一种根据用户对各种产品的交互与评分来推荐新产品的推荐系统技术. 协同过滤引入的地方就在于它只需要输入一系列用户/产品的交互记录: 无论是显式的交互(例如在购物网站 ...
- 其它综合-有关service、systemctl、chkconfig、init
有关service.systemctl.chkconfig.init CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 daemon,原来管理系统启动和管理系统服务的相关 ...
- ESXI 6.5安装详细步骤
网址:http://blog.51cto.com/laotang6/2044861 ESXi是专为运行虚拟机.最大限度降低配置要求和简化部署而设计.只需几分钟时间,客户便可完成从安装到运行虚拟机的全过 ...
- Android greenDAO 数据库 简单学习之基本使用
看网上对greenDAO介绍的不错,今天就动手来试一把,看看好不好使. greenDAO 官方网站:http://greendao-orm.com/ 代码托管地址:https://github.com ...