内置函数(二)

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 内置函数(二)的更多相关文章

  1. python---day14( 内置函数二)

    内置函数二一:匿名函数 lambda函数 lambda 表示匿名函数,不需要用def 来申明. 语法: 函数名=lambda 参数:返回值 ----〉 案例:f=lambda n:n*n 例子01: ...

  2. python函数知识六 内置函数二、匿名函数与内置函数三(重要)

    19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...

  3. day 16 - 2 内置函数(二)练习

    内置函数(二)练习 1.用 map 来处理字符串列表,把列表中所有人都变成 sb,比方 alex_sbname=['alex','wupeiqi','yuanhao','nezha'] name=[' ...

  4. python 内置函数(二) 进阶函数 递归内容及二分法查找 知识点

    1,lambda:  匿名函数 2.sorgted()  排序函数 3,filter()   过滤函数 筛选 4,map()  映射函数 5.递归 6.二分法 一. 匿名函数: lambda lamb ...

  5. Python入门-内置函数二

    看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用 ...

  6. 内置函数二: map sorted filter

    -----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------- ...

  7. day16:内置函数二

    1,大作业,yield 返回之后可以对数据进行处理了就,注意函数的解耦,每一个小功能写成一个函数,增强可读性,写之前自己要先把整体功能分块,先做什么,在做什么 # 现在需要对这个员工信息文件进行增删改 ...

  8. Python内置函数二 (递归函数,匿名函数,二分法)

    匿名函数 lambda() 语法: lambad  参数 : 返回值 def func(a,b): return a * b print(func(2,5)) a = lambda a ,b : a* ...

  9. 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数

    1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...

随机推荐

  1. P1546 最短网络 Agri-Net题解(克鲁斯卡尔)

    P1546 最短网络 Agri-Net 那么这个题是一道最小生成树的板子题 在此讲解kruskal克鲁斯卡尔方法: 原理: 并查集在这里被用到: 众所周知:树满足这样一个定理:如果 图 中有n个节点并 ...

  2. 山东省网络安全技能大赛 部分writeup

    web1 提示:ip不在范围内 直接抓包加client-ip: 127.0.0.1 即可得到flag web2 <?php include 'here.php';    $key = 'kela ...

  3. node+mysql 数据库连接池

    1. 什么是数据库连接池? 数据库连接池是程序启动时建立足够的数据库连接,并将这些连接组成一个池,由程序动态地对池中的连接进行申请,使用和释放. 2. 使用数据库连接池原理及优点是什么? 数据库连接池 ...

  4. 使用exec和sp_executesql动态执行SQL语句(转载)

    当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句.一个比较通用的分页存储过程,可能需要传入表名, ...

  5. MariaDB第四章:视图,事务,索引,外键--小白博客

    视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结 ...

  6. mybatis 使用事务处理

    mybatis默认开启事务 以前使用JDBC的时候,如果要开启事务,我们需要调用conn.setAutoCommit(false)方法来关闭自动提交,之后才能进行事务操作,否则每一次对数据库的操作都会 ...

  7. BEX5下集成FullCalendar

    实现版本 BEX5 3.6 集成前准备: 直接网上查找FullCalendar获得插件文件 fullcalendar.min.css fullcalendar.min.js fullcalendar. ...

  8. JarvisOJ Misc webshell分析

    分析压缩包中的数据包文件并获取flag.flag为32位大写md5. 神仙们还是强啊,webshell主要看http流,再过滤只剩下post请求 可以使用 http.request.method == ...

  9. kubeadm的安装步骤(HA)

    准备3台主节点:km1/km2/km3 1.编辑kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfigur ...

  10. P1494 [国家集训队]小Z的袜子

    题目 P1494 [国家集训队]小Z的袜子 解析 在区间\([l,r]\)内, 任选两只袜子,有 \[r-l+1\choose2\] \[=\frac{(r-l+1)!}{2!(r-l-1)!}\] ...