Python中bytearray()类的详细解析与功能介绍

          bytearray 是 Python 的一个内置类,它提供了一个可变序列的字节数组。

  • bytearray 数组的元素必须是0-255之间的整数,这些整数对应于ASCII字符集中的数字。下面着张图是部分ASCII字符:
  • bytearray 是可变的,可修改其内容,而 bytes 是不可变的,不能修改。
  • 创建 bytearray

  • 从整数序列创建
  • ba1 = bytearray([65, 66, 67])
    #从ASCII表得知数字三个数字对应字符 'ABC'
  • 从字节串创建
  • ba2 = bytearray(b'ABC')
  • 从字符串创建(需要指定编码)
  • ba3 = bytearray('ABC', 'utf-8')
  • 初始化指定大小的字节数组,并用0填充
  • ba4 = bytearray(5) # 代表5个0

    循环打印bytearray元素

    s_array = bytearray(b"Hello world")
    print(s_array)
    for i in s_array:
       print(f'字节码对应的数字:{i} 转换为字符:{chr(i)}')
    
    #结果
    bytearray(b'Hello world')
    字节码对应的数字:72 转换为字符:H
    字节码对应的数字:101 转换为字符:e
    字节码对应的数字:108 转换为字符:l
    字节码对应的数字:108 转换为字符:l
    字节码对应的数字:111 转换为字符:o
    字节码对应的数字:32 转换为字符:
    字节码对应的数字:119 转换为字符:w
    字节码对应的数字:111 转换为字符:o
    字节码对应的数字:114 转换为字符:r
    字节码对应的数字:108 转换为字符:l
    字节码对应的数字:100 转换为字符:d

    方法介绍

    字节数组bytearray的很多方法类似于之前讲过的list列表。

  • append(int): 追加一个字节到末尾。
  • #增加一个字符h,对应数字是104
    s_array.append(104)
    print(s_array)
    #结果
    bytearray(b'Hello worldh')
  • extend(iterable_ints): 追加多个字节到末尾。
  • s_array.extend([104,105])
    print(s_array)
    #结果
    bytearray(b'Hello worldhi')
  • insert(index, int): 在指定索引处插入一个字节。
  • s_array.insert(3,104)
    print(s_array)
    #结果
    bytearray(b'Helhlo world')
  • remove(int): 移除首次出现的指定字节。
  • #移除字符H,数字对应72
    s_array.remove(72)
    print(s_array)
    #结果
    bytearray(b'ello world')
  • pop([index]): 移除并返回指定索引处的字节(默认为最后一个)。
  • popvalue = s_array.pop()
    print(popvalue)
    print(s_array)
    #结果
    100
    bytearray(b'Hello worl')
  • find(sub[, start[, end]]): 返回子字节序列首次出现的索引,如果没有找到则返回-1。
  • print(s_array.find(b'H'))
    print(s_array.find(100))
    #结果
    0
    10
  • index(sub[, start[, end]]): 返回子字节序列首次出现的索引,如果没有找到则引发 ValueError。
  • #查找字符d的索引位置
    print(s_array.index(100))
    #结果
    10
  • count(sub[, start[, end]]): 返回子字节序列出现的次数。
  • #查找字母l出现的次数
    print(s_array.count(b'l'))
    #结果
    3
  • replace(old, new[, count]): 替换字节序列中的字节并返回新字节数组,不修改原字节数组。
  • #修改字符H为字符Q
    s_array_new = s_array.replace(b'H',b'Q')
    print(s_array_new)
    print(s_array)
    #结果
    bytearray(b'Qello world')
    bytearray(b'Hello world')
  • translate(table[, delete]): 使用转换表进行转换,并可以删除指定字节。跟replace函数一样返回新字节数组,不修改原字节数组。
  • translate功能类似于字符串str中的功能,也是先使用maketrans创建替换的表(只传两个参数,第一个是需要替换的值,第二个是替换后的值),然后作为参数传入translate函数。

    #修改字符H为字符Q,并删除字符o
    s_array_new=s_array.translate(s_array.maketrans(b'H',b'Q'),b'o')
    print(s_array_new)
    print(s_array)
    #结果
    bytearray(b'Qell wrld')
    bytearray(b'Hello world')

    共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

    —–指水滴不断地滴,可以滴穿石头;

    —–比喻坚持不懈,集细微的力量也能成就难能的功劳。

    —-感谢读者的阅读和学习和关注,谢谢大家。

    作者:科雷learning

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python中bytearray()类的详细解析与功能介绍

    发表回复