Python 学习笔记: 一些内置函数的知识点
内置函数
1, Bytes
str1 = '中文字符'
#unicode 转换为 GBK的 bytes
print(bytes(str1,encoding='gbk'))
#unicode 转换为 GBK的 bytes
print(bytes(str1,encoding='utf-8'))
# bytes 解码成字符
print(bytes(str1,encoding='gbk').decode('gbk'))
输出如下:
b'\xd6\xd0\xce\xc4\xd7\xd6\xb7\xfb' b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6' 中文字符
2 bytearray 函数
str1 = '中文字符' # print(bytes(str1,encoding='gbk')) print(bytes(str1,encoding='utf-8')) # # print(bytes(str1,encoding='gbk').decode('gbk')) b1 = bytearray(str1,encoding='utf-8') print(b1) for i in b1: print(format(i,'x'), end= ' ') #以16进制输出i , 默认i是十进制的数
输出如下:
b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6' bytearray(b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6') e4 b8 ad e6 96 87 e5 ad 97 e7 ac a6
3 memoryview
tr1 = '中文字符' # print(bytes(str1,encoding='gbk')) print(bytes(str1,encoding='utf-8')) # # print(bytes(str1,encoding='gbk').decode('gbk')) b1 = bytearray(str1,encoding='utf-8') print(b1) for i in b1: print(format(i,'x'), end=' ') print() print(memoryview(b1).hex())
输出如下:
b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6' bytearray(b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6') e4 b8 ad e6 96 87 e5 ad 97 e7 ac a6 e4b8ade69687e5ad97e7aca6 # 这一行是一个整体, 是一次就输出的
4 小知识: 中文字符的unicode --> 中文字符的方法:使用eval
str2 = '中' str3 = ascii(str2) print(str3) #unicode --> str str4 = eval(str3) print(str4)
输出如下:
'\u4e2d' 中
5 zip 方法, “拉链方法”
示例程序:
list1 = [1,2,3,4,5] list2 =['a','b','c','d'] tu1 = ('*','**','4*') dic1 = {'k1':'v1','k2':'v2'} for i in zip(list1,list2,tu1,dic1): print(i)
输出如下:(按最短长度”拉上拉链“,对于字典, 只有key, 没有value)
(1, 'a', '*', 'k1') (2, 'b', '**', 'k2')
6 filter 函数
例子1 : 取出一个数字列表中的奇数
def is_odd(x): return x%2==1 list1 = [ 1,4,7,9,34,57] ret = filter(is_odd,list1) #filter函数返回的是个迭代器 for i in ret: print(i)
输出:
1 7 9 57
例子2:从一个列表中选出字符串。
def is_str(x): return type(x) == str ret = filter(is_str,[1,3,'hello',5,'world']) for i in ret: print(i)
输出:
hello
world
7 map 函数
ret = map(abs, [1,-4,-8,9]) for i in ret: print(i)
输出:
1 4 8 9
8 匿名函数 lambda
例子:找出字典中value数值最大的key值。
dic = {'k1':10,'k2':100,'k3':30} print(max(dic, key=lambda k : dic[k]))
输出: k2
匿名函数中, k 是参数, dic[k] 是匿名函数的返回值
备注: max 找最大值的函数, key= 表示可以接收比较大小的方式。
(字典默认比较大小时是找出字典的key值最大的哪一个,max(dic) 输出将是k3 , )。
例子: 两个元组((‘a'),('b')),(('c'),('d')), 使用匿名函数输出 [ { 'a':'c' },{'b' :'d' }]
tu1 = (('a'),('b')) tu2 = (('c'),('d')) ret = zip(tu1, tu2) # for i in ret: # print(i) # def func(tup): # return {tup[0]:tup[1]} res = map(lambda tup:{tup[0]:tup[1]}, zip(tu1,tu2)) print(list(res))
小结:
其他:input,print,type,hash,open,import,dir
str类型代码执行:eval,exec
数字:bool,int,float,abs,divmod,min,max,sum,round,pow
序列——列表和元组相关的:list和tuple
序列——字符串相关的:str,bytes,repr
序列:reversed,slice
数据集合——字典和集合:dict,set,frozenset
数据集合:len,sorted,enumerate,zip,filter,map