为了账号安全,请及时绑定邮箱和手机立即绑定

Python bytearray与字节列表

Python bytearray与字节列表

侃侃无极 2021-03-28 11:54:30
我正在尝试通过在预先知道整个字符串的长度时连接多个较短的字符串来找到创建长字节字符串(或字节数组)的最有效方法。我制作了这个脚本,并得出了以下结果:import timeMSG = b'test message'COUNT = 30000def bytes_list_test():      tStart = time.clock()    l = []    for i in range(COUNT):        l.append(MSG)    bs = b''.join(l)    print('byte list time:', time.clock() - tStart)def bytearray_test():    tStart = time.clock()    ba = bytearray()    for i in range(COUNT):        for c in MSG:            ba.append(c)    print('array time:', time.clock() - tStart)def initialized_bytearray_test():    tStart = time.clock()    ba = bytearray([0x00]*len(MSG)*COUNT)    for i in range(COUNT):        ba[i*len(MSG):i*len(MSG)+len(MSG)] = MSG    print('initialized array time:', time.clock() - tStart)bytes_list_test()bytearray_test()initialized_bytearray_test()结果:byte list time:         0.0076534920117410365array time:             0.08107178658246994initialized array time: 0.08843219671325642几个问题:1)创建字节列表并使用join()方法是否按照结果暗示的方式进行?2)为什么使用字节列表比使用似乎专门为这种类型的东西设计的字节数组要快得多?3)您会认为初始化后的数组会比未初始化的数组快,因为初始化后的数组不必调整大小(请注意,它有时会表现得更好,但并没有那么大而且不一致)。由于切片操作,速度不是更快吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号