内置数据结构-bytes

python2中不区分str和bytes , bytes是从python3开始新添加的
bytes也有str类似的方法,支持切片, 不可变

字符串前面加上b来表示一个序列是bytes
In [60]: b=b'you can do it.'

In [61]: type(b)
Out[61]: bytes

In [62]: b.find(b'do')
Out[62]: 8

In [63]: b[0:4]
Out[63]: b'you '

str使用encode()转化成bytes, bytes使用decode()转成str
默认使用的是UTF-8的编码, 如果是其他编码,需要显示的传入编码

In [64]: b.decode()
Out[64]: 'you can do it.'

bytearray

bytearray()返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。下面说明一下几种特别的使用方法:

  1. 如果source是一个字符串,那么必须给出endcoding是什么样编码的,以便转换为合适的字节保存。
  2. 如果source是一个整数,那么这个数组将初始化为空字节。
  3. 如果source是一个有缓冲区接口的对象,那么只读的接口初始到数组里。
  4. 如果source是一个迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组里
#bytearray()函数  
  
a = bytearray('1234深圳', 'utf-8')  
bytearray(b'1234\xe6\xb7\xb1\xe5\x9c\xb3')  
  
b = bytearray()  
bytearray(b'')
  
c = [1,4,5,7,8]  
bytearray(b'\x01\x04\x05\x07\x08')  
    原文作者:loveroot
    原文地址: https://www.jianshu.com/p/2c35d1fb2e50
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞