1,数据类型:int bool ...
数据结构:dict tuple list set str
2,reversed(),reverse() 反转
2.1,#reverse() 反转,在原表反转,即修改原表
lis = [1,2,3,4,5]
lis.reverse()
print(lis)
2.2,#reversed() 也是反转,但是不改变原表且返回一个迭代器
lis = [1,2,3,4,5]
lis2 = reversed(lis)
print(lis2)
3,slice()切片函数
lis = (1,2,3,4,5)
sli = slice(1,5,2) # 返回一个对应的切片对象
print(lis[sli]) # 使用切片对象
# 等同于
print(lis[1:5:2])
4,format
见转载文章:内置函数——format
5,bytes 转换成bytes类型(将对应的字节转换成对应的16进制一个字节对应一个十六进制)
- 网络编程,网络上只能传二进制
- 照片和视频也是以二进制存储
- html网页爬到的也是编码
print(bytes('你好',encoding='gbk')) #将gbk编码的‘你好‘,转换成对应的16进制,
print(bytes('你好',encoding='utf-8')) #将utf-8编码的‘你好‘,转换成对应的16进制,
6,bytearray(s,encoding='utf-8') 是一个bytes类型的一个数组
print(bytearray('你好',encoding='utf-8'))
详细讲解:https://www.jianshu.com/p/af0f7efe2709
7,字符转换
- ord 字符按照unicode转数字
print(ord('a')) #>>>97
- chr 数字按照unicode转字符
print(chr(97)) #>>>a
- ascii 只要是ascii码中的内容就打印出来,不是就转换成u
8,repr 用于%r格式化输出,输出原型毕露
name = 'egg'
print('你好%r',%name) #>>>你好'egg'
print(repr('1')) #>>>'1'
print(repr(1)) #>>>1
9,all() any() 都接收可迭代的
9.1,all() 判断是否有bool值为False的值,如果有就是False(判断是否全为真)
print(all(['a','',123])) #>>>False
print(all(['a',123])) #>>>True
9.2,any() 判断是否有bool值为True的值,如果有就是True(判断是否不全为假)
print(any(['',True,0,[]])) #>>>True
10,zip() 拉链函数
lis = [1,2,3]
lis2 = ['a','b','c']
print(zip(lis,lis2)) #是个迭代器
for i in zip(lis,lis2):
print(i)
#结果:
(1,'a')
(2,'b')
(3,'c')
类似拉链方法,长度不一样时依次拉,多出来的不拉。
可以写多个集合
lis = [1,2,3]
lis2 = ['a','b','c']
tu = ('*','**',[1,2])
dic = {'k1':1,'k2':2}
print(zip(lis,lis2,tu,dic)) #是个迭代器
for i in zip(lis,lis2):
print(i)
#结果:
(1,'a','*','k1')
(2,'b','**','k2')
11,filter() map()
11.1,filter(函数名,可遍历表)
将表中的元素依次通过前面的函数进行筛选,如果满足条件,函数返回True,则将该元素提出。
举例:要从一个list [1, 4, 6, 7, 9, 12, 17]中去除偶数,提取出奇数,首先,要编写一个判断奇数的函数;然后,利用filter()过滤掉偶数
def is_odd(x):
return x % 2 == 1
lis = [1, 4, 6, 7, 9, 12, 17]
ret = filter(is_odd, lis)
print(ret) #返回一个迭代器
print(lis) #不改变原列表
print(list(ret)) #将满足条件(结果为True)的元素提出。
#for i in ret: # 迭代器只能用一次。
# print(i)
#还可写为
ret2 = [i for i in [1, 4, 6, 7, 9, 12, 17] if i % 2 == 1]
print(ret2)
lis = [1, 4, 6, 7, 9, 12, 17]
ret3 = filter(lambda x:x%2 == 1,lis)
print(list(ret3))
ret3 = filter(lambda x:True if x%2 == 1 else False,lis)
print(list(ret3))
举例:删除 None 或者空字符串:
def is_not_empty(s):
return s and len(s.strip()) > 0
lis = list(filter(is_not_empty, ['test', None, '', 'str', ' ', 'END']))
print(lis)
11.2,map(函数名,可遍历表)将表中的元素依次传入前面的函数中并执行函数,将函数执行后的结果提出。
ret = map(abs,[1,-4,6,-8]) #绝对值排序
print(ret)
for i in ret:
print(i)
12,sort() sorted() 排序
15.1,sort()在原列表的基础上进行排序,原列表改变
lis = [1,-4,6,5,-10]
lis.sort(key = abs) #按绝对值排序
print(lis)
12.2,sorted(iterable, key=None, reverse=False) # 再生成一个表,不改变原表,占内存
参数说明:
iterable:是可迭代类型;
key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
返回值:有序列表
l1 = [1,3,5,-2,-4,-6]
l2 = sorted(l1,key=abs)
print(l1)
print(l2)