bytearray和list之间的区别

时间:2015-05-09 22:01:51

标签: python python-2.7

bytearray之间有什么区别,例如listtuple

顾名思义,bytearray必须是array,其中包含byte个对象。
在python中,似乎同等对待bytesstr

>>> bytes
<type 'str'>

那么,有什么区别?
此外,如果您打印bytearray,结果非常奇怪

>>> v = bytearray([200, 201])
>>> print v
ÈÉ

似乎它会转换chr(integer)中的整数,是吗?那么bytearray有什么用?

1 个答案:

答案 0 :(得分:10)

您在某种程度上是正确的:在Python 2中,bytesstr类型同义。这是因为最初没有bytes对象,只有strunicode(后者用于unicode字符串,即具有多字节功能)。当Python 3出现时,他们改变了整个字符串的东西并使unicode成为默认的Python 3 str类型,并且他们添加了bytes作为原始字节序列的类型(使其等同于Python 2的{{1}对象)。

因此,在Python 3中,strstr之间存在差异,Python 2中的相应类型为bytesunicode

现在使str类型有趣的是它是可变的。上面的所有字符串和字节序列都是不可变的,因此每次更改时,您都要创建一个新对象。但是你可以修改bytearray个对象,使它们在你需要修改序列中的单个字节的各种目的中变得有趣。