admin / 10.12.2017

Массивы в питоне

.

Перейти к основному содержанию

  • append() — добавляет элемент в конец списка.
  • extend() — добавляет в конец списка список-аргумент.
  • insert() — вставляет элемент по указанному индексу.
  • remove() — удаляет первый объект из списка, значение которого равно аргументу. Если такого элемента нет, то возникает ошибка.
  • pop() — удаляет элемент по указанному индексу и возвращает его.

    Модуль array. Массивы в python

    Если индекс не указан, то удаляет и возвращает последний элемент.

  • index() — возвращает индекс указанного элемента. Если таких элементов несколько, то вернет индекс только первого. Если таких элементов нет, то возникнет ошибка.
  • count() — считает сколько раз в списке встречается заданный элемент.
  • sort() — сортировка списка. Список изменяется, а не возвращается новый.
  • reverse() — переворачивает список.

Модуль array определяет массивы в python. Массивы очень похожи на списки, но с ограничением на тип данных и размер каждого элемента.

Размер и тип элемента в массиве определяется при его создании и может принимать следующие значения:

Класс array.array(TypeCode [, инициализатор]) — новый массив, элементы которого ограничены TypeCode, и инициализатор, который должен быть списком, объектом, который поддерживает интерфейс буфера, или итерируемый объект.

array.typecodes — строка, содержащая все возможные типы в массиве.

Массивы изменяемы.

Python создание и заполнение двумерного массива

Массивы поддерживают все списковые методы (индексация, срезы, умножения, итерации), и другие методы.

Методы массивов (array) в python

array.typecode — TypeCode символ, использованный при создании массива.

array.itemsize — размер в байтах одного элемента в массиве.

array.append(х) — добавление элемента в конец массива.

array.buffer_info() — кортеж (ячейка памяти, длина). Полезно для низкоуровневых операций.

array.byteswap() — изменить порядок следования байтов в каждом элементе массива. Полезно при чтении данных из файла, написанного на машине с другим порядком байтов.

array.count(х) — возвращает количество вхождений х в массив.

array.extend(iter) — добавление элементов из объекта в массив.

array.frombytes(b) — делает массив array из массива байт. Количество байт должно быть кратно размеру одного элемента в массиве.

array.fromfile(F, N) — читает N элементов из файла и добавляет их в конец массива. Файл должен быть открыт на бинарное чтение. Если доступно меньше N элементов, генерируется исключение EOFError , но элементы, которые были доступны, добавляются в массив.

array.fromlist(список) — добавление элементов из списка.

array.index(х) — номер первого вхождения x в массив.

array.insert(n, х) — включить новый пункт со значением х в массиве перед номером n. Отрицательные значения рассматриваются относительно конца массива.

array.pop(i) — удаляет i-ый элемент из массива и возвращает его. По умолчанию удаляется последний элемент.

array.remove(х) — удалить первое вхождение х из массива.

array.reverse() — обратный порядок элементов в массиве.

array.tobytes() — преобразование к байтам.

array.tofile(f) — запись массива в открытый файл.

array.tolist() — преобразование массива в список.

Вот и всё, что можно было рассказать про массивы. Они используются редко, когда нужно достичь высокой скорости работы. В остальных случаях массивы можно заменить другими типами данных: списками, кортежами, строками.

array¶

В модуле array объявляется новый тип объектов – array, который действует практически так же, как список, но все его элементы могут принадлежать только одному какому-нибудь типу.

Модуль array может пригодиться, когда потребуется реализовать списки данных с эффективным расходованием памяти и известно, что все элементы списка принадлежат одному типу. Например, чтобы сохранить список из 10 миллионов целых чисел, потребуется примерно 160 Мбайт памяти, тогда как массив из 10 миллионов целых чисел займет всего 40 Мбайт. Несмотря на такую экономию памяти, ни одна из основных операций над массивами не выполняется быстрее, чем аналогичные операции над списками, более того, они могут оказаться даже медленнее. При выполнении вычислений с участием массивов следует быть осторожными с операциями, которые создают списки. Например, когда генераторы списков применяются к массивам, они преобразуют их в списки целиком, уничтожая все преимущества в экономии памяти. В подобных ситуациях создавать новые массивы лучше с помощью выражений-генераторов. На- пример:

Поскольку выигрыш от использования массивов заключается в экономии памяти, возможно, окажется более осмысленным выполнить операции непосредственно в исходном массиве. Функция enumerate() обеспечивает эффективный способ реализации таких операций, например:

В случае больших массивов операции внутри массива выполняются примерно на 15 процентов быстрее, чем аналогичный программный код, который создает новый массив с помощью выражения-генератора.

Тип элементов массива определяется в момент создания с помощью одного из кодов, перечисленных в табл.

Код типа Описание Тип в языке C Минимальный размер (в байтах)
‘c’ 8-битный символ char 1
‘b’ 8-битное целое signed char 1
‘B’ 8-битное целое без знака unsigned char 1
‘u’ Символ Юникода PY_UNICODE 2 или 4
‘h’ 16-битное целое short 2
‘H’ 16-битное целое без знака unsigned short 2
‘i’ Целое int 4 или 8
‘I’ Целое без знака unsigned int 4 или 8
‘l’ Длинное целое long 4 или 8
‘L’ Длинное целое без знака unsigned long 4 или 8
‘f’ float одинарной точности float 4
‘d’ float двойной точности double 8
(typecode[, initializer])¶
Параметры:
  • typecode
  • initializer – строка или список значений, используемых для инициализации значений элементов массива

Возвращает объект массив элементов типа typecode. При попытке вставить в массив элементы, тип которых не совпадает с типом, использовавшимся при создании массива, возбуждается исключение TypeError.

(x

Возвращает количество вхождений x в массиве.

(b

Добавляет объект b в конец массива a.

Получение длины массива в Python

Объект b может быть массивом или другим итерируемым объектом, тип элементов которого совпадает с типом элементов массива a .

(f, n

Читает n элементов (в двоичном формате) из объекта файла f и добавляет их в конец массива. Аргумент f должен быть объектом файла. Если количество элементов, которое удалось прочитать из файла, окажется меньше, чем n, возбуждает исключение EOFError.

(list

Добавляет элементы из списка list в конец массива a. Аргумент list может быть итерируемым объектом.

(s

Добавляет элементы из строки s в конец массива, где s интерпретируется как строка двоичных значений, как если бы чтение выполнялось методом fromfile().

(x

Возвращает индекс первого вхождения значения x в массиве a. В случае отсутствия значения x возбуждает исключение ValueError.

(i, x

Вставляет новый элемент со значением x перед элементом с индексом i.

([i])¶

Удаляет из массива элемент с индексом i и возвращает его. Если аргумент i опущен, удаляет последний элемент.

(x

Удаляет первое вхождение x из массива. В случае отсутствия значения x возбуждает исключение ValueError.

()¶

Переставляет элементы массива в обратном порядке.

(f

Записывает все элементы массива в файл f. Данные сохраняются в двоичном формате.

()¶

Преобразует массив в обычный список.

()¶

Преобразует массив в строку двоичных данных, как если бы запись выполнялась методом tofile().

()¶

Преобразует массив в строку Юникода. Возбуждает исключение ValueError, если элементы массива имеют тип, отличный от ‘u’.

>>> a = array.array(“i”, [1,2,3,4,5]) >>> b = array.array(a.typecode, (2*x for x in a)) # Создаст новый массив из a
>>> a = array.array(“i”, [1,2,3,4,5]) >>> for i, x in enumerate(a): a[i] = 2*x

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*