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

 

posted @ 2018-11-16 14:16  程序猿🌽  阅读(156)  评论(0编辑  收藏  举报