Python 3.x 在Python3中,索引bytearray时会发生什么?
在Python 3中,我可以通过编码字符串来创建bytearray:Python 3.x 在Python3中,索引bytearray时会发生什么?,python-3.x,character-encoding,bytearray,Python 3.x,Character Encoding,Bytearray,在Python 3中,我可以通过编码字符串来创建bytearray: >>> foo = 'abc' >>> bar = foo.encode('utf-8') >>> bar b'abc' 但是,当我为该字节数组编制索引时,我得到了一些其他信息: >>> bar[0] 97 这是什么?为什么不是 b'a' 字节数组是数据,而不是字符,因此单个元素的值为0-255。值97是字符a的UTF-8编码。大多数常见字符的编码方
>>> foo = 'abc'
>>> bar = foo.encode('utf-8')
>>> bar
b'abc'
但是,当我为该字节数组编制索引时,我得到了一些其他信息:
>>> bar[0]
97
这是什么?为什么不是
b'a'
字节数组是数据,而不是字符,因此单个元素的值为0-255。值97是字符
a
的UTF-8编码。大多数常见字符的编码方式与UTF-8相同。这是一个小整数,因为索引字节就是这样定义的
索引
索引字节和字节数组返回小整数[…]
对bytearray对象项的赋值接受范围(256)内的整数。[……]
如果你想要b'a'
,那就切片吧
3>> b'abc'[0:1]
b'a'