函数(六)——内置函数大全(二)及匿名函数
一、内置函数
1)基础数据类型相关
和数据结构相关
序列:
1.列表和元组
列表:list
元组:tuple
2.相关内置函数
reversed:
reversed()
l = [1,2,3,4,5]
l.reverse()
print(l)
l = [1,2,3,4,5]
l2 = reversed(l)
print(l2)
保留原列表,返回一个反向的迭代器
slice:
l = (1,2,23,213,5612,342,43)
sli = slice(1,5,2)
print(l[sli])
print(l[1:5:2])
3.字符串
str:
数字类型
format:
print(format('test', '<20'))
print(format('test', '>40'))
print(format('test', '^40'))
bytes:
bytes 转换成bytes类型
我拿到的是gbk编码的,我想转成utf-8编码
print(bytes('你好',encoding='GBK')) # unicode转换成GBK的bytes
print(bytes('你好',encoding='utf-8')) # unicode转换成utf-8的bytes
bytearry:
网络编程 只能传二进制
照片和视频也是以二进制存储
html网页爬取到的也是编码
b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])
'\xe4\xbd\xa0\xe5\xa5\xbd'
s1 = 'alexa'
s2 = 'alexb'
memoryview:
ord:
字符按照unicode转数字
print(ord('好'))
print(ord('1'))
结果:22909
49
chr:
数字按照unicode转字符
print(chr(97))
结果:a
ascii:
只要是ascii码中的内容,就打印出来,不是就转换成\u
print(ascii('好'))
print(ascii('1'))
结果:a
'\u597d'
'1'
repr:
用于%r格式化输出
name = 'egg'
print('你好%r'%name)
print(repr('1'))
print(repr(1))
数据集合
1.字典:
dict
2.集合:
set:无序排序且不重复,是可变的。
frozenset:是冻结的集合,他是不可变的,存在哈希值。
相关内置函数
len:长度
sorted:排序,可以定义。
列表按照其中每一个值的绝对值排序
l1 = [1,3,5,-2,-4,-6]
l2 = sorted(l1,key=abs)
print(l1)
print(l2)
列表按照每一个元素的len排序
l = [[1,2],[3,4,5,6],(7,),'123']
print(sorted(l,key=len))
enumerate:枚举
all:只要有一个空的就返回False,全部不为空就返回True。
print(all(['a','',123]))
print(all(['a',123]))
print(all([0,123]))
结果:False
True
False
any:只要有一个为真就返回True。
print(any(['',True,0,[]]))
结果:True
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之后的结果集合 <= 执行之前的个数
filter只管筛选,不会改变原来的值
map:
执行前后元素个数不变
值可能发生改变
二、匿名函数
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
#这段代码
def calc(n):
return n**n
print(calc(10))
#换成匿名函数
calc = lambda n:n**n
print(calc(10))
函数名 = lambda 参数 :返回值
#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型