Как отмечается в другом ответе, struct_pack
, вероятно, все, что вам нужно и нужно использовать. Однако объекты типа array поддерживают протокол буфера и могут быть изменены:
>>> import array, struct
>>> a = array.array('c', ' ' * 1000)
>>> c = 'a'; i = 1
>>> struct.pack_into('ci', a, -0, c, i)
>>> a
array('c', 'a\x00\x00\x00\x01\x00\x00\x00 ...
Исходный буферный протокол был чем-то вроде взлома, в основном для расширений Си. Он устарел и заменен новым буферным API на уровне C и объектами просмотра памяти в Python 3 (и в готовящемся выпуске 2.7).