【发布时间】:2020-10-11 04:17:15
【问题描述】:
鉴于memoryview 中的Sequence,我如何创建单个bytes 实例而不创建中间bytes 实例? em>
天真的方法创建了许多bytes 的中间实例
def create_bytes(seq_mv: Sequence[memoryview]) -> bytes:
data = bytes()
for mv in seq_mv:
data = data + bytes(mv)
return data
函数create_bytes 在执行期间创建len(seq_mv) + 1 的bytes 实例。那是低效的。
我希望create_bytes 在执行期间创建一个新的bytes 实例。
【问题讨论】:
-
你试过
bytes().join(seq_mv)吗? -
确实,
joinis here in the docs 也是。谢谢!
标签: python python-3.x performance memory-efficient