我找到的所有解决方案都是用于列表。
感谢。
答案 0 :(得分:52)
简单:
bytearray(100)
将为您提供100个零字节。
答案 1 :(得分:8)
对于bytes
,还可以使用文字形式b'\0' * 100
。
# Python 3.6.4 (64-bit), Windows 10
from timeit import timeit
print(timeit(r'b"\0" * 100')) # 0.04987576772443264
print(timeit('bytes(100)')) # 0.1353608166305015
Update1:使用constant folding in Python 3.7,文字来自现在快20倍。
<强> UPDATE2:强> 显然,恒定折叠有一个限制:
>>> from dis import dis
>>> dis(r'b"\0" * 4096')
1 0 LOAD_CONST 0 (b'\x00\x00\x00...')
2 RETURN_VALUE
>>> dis(r'b"\0" * 4097')
1 0 LOAD_CONST 0 (b'\x00')
2 LOAD_CONST 1 (4097)
4 BINARY_MULTIPLY
6 RETURN_VALUE