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,也叫一句话 ...
随机推荐
- 距离放弃python又近了一大步,而然只是第四天
今天是周末后的第一天,周末四处浪浪浪,所以在周一的时候就要狠狠的复习之前的东西了,之后从第一天的计算机基础开始复习,具体内容请翻阅前三篇随笔,主要是要仔细看看,怕学了后面的忘了前面的,今天引进的第一个 ...
- Linux:Day10 程序包管理
YUM:yellow dog,Yellowdog Update Modifier yum repository:yum repo 存储了众多rpm包,以及包的相关的无数据文件(放置于特定目录下:rep ...
- C#中的Finalize,Dispose,SuppressFinalize(转载)
MSDN建议按照下面的模式实现IDisposable接口: public class Foo : IDisposable { public void Dispose() { Dispose(true) ...
- vc图像合成
本程序下载地址: 上一篇讲述了tiff格式图片拆分成多张图片, 这篇博客讲述如何把多张任意格式的图片合成为一张图片. 图像合成仍然需要借助Cximage图像库,合成函数为Mixfrom, 函数原型为: ...
- 虽然不抱希望但也愿.Net和Java之争暂得平息
我在刚开始学编程的时候就经常来博客园,当时博客园基本是.Net的天下,从那时开始.Net和Java哪个好就一直在打,这些年没怎么看博客园了,回来发现到了今天居然还在争论,让我不由得想来分析一下这个问题 ...
- 老牌开源Office操作组件NPOI现已支持.NET Core
昨天在微信群里听到老牌Excel开发利器NPOI的作者瞿总说4.6.1版本的NPOI已经支持.NET Standard 2.0了,这也就意味着你可以在.NET Core中使用NPOI了. 作者:依乐祝 ...
- JS 字符串处理相关(持续更新)
一.JS判断字符串中是否包含某个字符串 indexOf() indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则该方法返回 -1. var str ...
- centos7之sed和awk常用
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...
- 简单实现计算机上多个jdk环境切换
实现多个jdk环境切换,大致有两种方式 安装两个jdk,并配置相应的环境变量,在java的控制面板中修改设置 非主要的jdk仅仅是用来测试,并不常用,故只要让ide配置对应的jdk位置就可以了,属于懒 ...
- 多版本python及多版本pip使用
最近做一些网站的发布程序,要用到python3,所以又安装了python3. www.qlrx.netwww.393662.comwww.qnpx.netwww.393225.com ...