Python3字符编码总结

  • 首先前面的 \ 表示转义, \x:只是 16 进制的意思,后边跟两位,则表示单字节编码;
  • \d:十进制;\o:八进制;
  • \u:unicode 码; 一般其后跟 4 个 16 进制数,就是两个字节。因此,一般为 unicode-16 ;
  • Python:字符串的decode和encode成员函数,可对其进行转换
>>>test1 = '\u5220\u9664'   ##构造字符串str
>>>print(test1)
删除
>>>type(test1)
<class 'str'>

>>>test1 = u'\u5220\u9664'  ##前缀u表示Unicode编码,在python3中,str默认采用Unicode编码,所以结果前面一样
>>>print(test1)
删除
>>>type(test1)
<class 'str'>

>>> test2 = test1.encode('utf-8') ##将test1用utf-8编码,成为byte array,就是bytes class
>>> print(test2)                 
b'\xe5\x88\xa0\xe9\x99\xa4'      
>>> type(test2)                  
<class 'bytes'>    

>>> test3 = b'a' ##前缀b是bytes类型
>>> type(test3)
<class 'bytes'>
>>> b'删除'
  File "", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>>             
  • ord(c):参数是长度为1的字符串,简称字符。当参数为统一对象时(unicode object),返回能代表该字符的统一编码,当参数为8比特的字符串时,返回该字节培养他’a’)返回整形数值97,ord(u’\u2020’)返回8224。
>>> ord('a')
97
>>> hex(ord('删'))
'0x5220'
  • chr(i):返回一个字符,字符的ascii码等于参数中的整形数值。例如chr(97)返回字符’a’,该方法是ord()的反方法。参数必须是0-255的整形数值,否则会抛出valueError错误。

  • 在应用函数时,观察到有个python函数比较高效,map(function,iterable,…)将函数应用于每一项iterable,并且返回一个结果的列表。map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

  • 注意:map()函数不改变原有的 list,而是返回一个新的 list。

  • 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
  • 由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
testlist = ['删','除']
a = map(ord,listtest)
b = list(a)
>>> for i in range(len(b)):
...     b[i] = hex(b[i])
...
>>> b
['0x5220', '0x9664']

这篇文章讲的很详细 https://blog.csdn.net/piglite/article/details/80676641

你可能感兴趣的:(Mlliu/Python学习)