Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2012 08:33:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Бинарную строку в список интов

там речь про то, что массивы будут перегружены проверками и преобразованиями, если там всё время будет учитываться порядок

odnochlen
но советчикам пофиг, они советуют, а не читают.
они не пишут, им только что-то кажется там и всё

array должен быть быстрым
а если нужно работать с порядком, то делается производный класс



Офлайн

#2 Авг. 28, 2012 15:31:51

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Бинарную строку в список интов

Порядок нужно учитывать один раз при (де)сериализации. При чтении это можно сделать на месте, а при записи нужно создавать временный массив (или 2 раза делать byteswap). Этот вариант их не устроил.

Офлайн

#3 Авг. 29, 2012 03:06:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Бинарную строку в список интов

odnochlen
Порядок нужно учитывать один раз при (де)сериализации.
если порядок задаётся при создании массива, то массивы могут иметь разный порядок
массивы созданы не только для чтения и записи, но и для операций над ними

>>> a = array.array('L', range(0, 3))
>>> b = array.array('L', range(3, 6))
>>> c = array.array('L', range(6, 9))
>>> a + b + c
array('L', [0, 1, 2, 3, 4, 5, 6, 7, 8])
>>> a * 2 + b
array('L', [0, 1, 2, 0, 1, 2, 3, 4, 5])
>>> a.extend(b)
>>> a
array('L', [0, 1, 2, 3, 4, 5])
>>>
вот здесь у них один порядок

>>> a = array.array('L', range(0, 3))
>>> b = array.array('L', range(3, 6))
>>> a
array('L', [0, 1, 2])
>>> b
array('L', [3, 4, 5])
>>> a.byteswap()
>>> a
array('L', [0, 16777216, 33554432])
>>> b
array('L', [3, 4, 5])
>>> d = a + b
>>> d
array('L', [0, 16777216, 33554432, 3, 4, 5])
>>>
и здесь у них один порядок

поэтому нет проверок порядка, а если нет проверок, то и преобразования не нужны



Офлайн

#4 Авг. 29, 2012 03:13:07

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Бинарную строку в список интов

Ты другими словами выразил то же, что я сказал.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version