Массивы и списки в Python

Рассмотрим в уроке массивы и их виды, списки, нумерацию списков и основные методы при работе с ними.

Массивы

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

Массивы символов
Массивы символов

Перед началом работы с массивами подключаем соответствующий модуль. Для этого введем команду:

from array import *

Создадим массив для данных типа int:

>>> a = array('i', [2, 5, 4, 0, 8])
>>> type(a)
<class 'array.array'>
>>> a
array('i', [2, 5, 4, 0, 8])

Теперь обратимся к каждому из элементов данного массива. Попробуем изменить их и дополнить массив:

>>> a[2]
4
>>> a[6]
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    a[6]
IndexError: array index out of range

Как видите, нельзя обратиться к элементу, которого нет.

Любой массив может содержать данные только одного типа, то есть нельзя использовать int и float в одном массиве. Это является недостатком при работе, для устранения которого были введены списки (list).

Список в Python

Список в Python похож на массив. Различие в том, что в списках можно хранить объекты различных типов данных. Размер списка не статичен и поддается изменениям.

На программном уровне переменная, определяемая как список, содержит ссылку на структуру в памяти, которая хранит ссылки на какие-либо другие объекты или структуры.

Списки в Python

Рассмотрим на примере:

>>> a = []
>>> type(a)
<class 'list'>

Теперь добавим элементы и проверим доступ к ним:

>>> a = [1,0.34,"Hello"]
>>> a
[1, 0.34, 'Hello']
>>> a[2]
'Hello'
>>> a[0]
1
>>> a[1]
0.34

Нумерация списка в Python

Прямая и обратная нумерация

По умолчанию нумерация начинается с 0.

a = [1, 'abc', h, 0,256]
     0    1    2    3

При обратной нумерации элементы считаются с конца и начинаются с -1:

a = [1, 'abc', h, 0,256]
    -4   -3   -2   -1

С помощью этих индексов можем обратиться к каждому элементу списка:

a[0]
>>> 1
a[-2]
>>> h

Срез

Срез — это некий диапазон символов, к которому мы обращаемся. При срезе вторым числом мы указываем номер символа, который не входит в диапазон:

a[0:2] #[1, 'abc']
a[-4:-2] #[1, 'abc']

Мы можем обратиться и к символам с использованием разных нумераций одновременно:

a[0:-2] #[1, 'abc']

Если мы не укажем одну из границ среза, то программа принимает за границу первый или последний символ:

a[:2] #[1, 'abc']
a[2:] #[h, 0,256]

Методы работы со списками

Рассмотрим основные методы работы со списками на примерах.

list.append(x)

Добавляет в конце списка новый элемент x:

>>> a = [0,0.1,"один"]
>>> a.append(321)
>>> a
[0, 0.1, 'один', 321]

list.insert(i,x)

Вставка элемента x на место i (нумерация начинается с нуля):

>>> a = [0,0.1,"один"]
>>> a.insert(1,321)
>>> a
[0, 321, 0.1, 'один']

list.extend(L)

Добавляет в конец списка список L:

>>> a = [0,0.1,"один"]
>>> b = ["два",3,4.1]
>>> a.extend(b)
>>> a
[0, 0.1, 'один', 'два', 3, 4.1]

list.remove(x)

Удаляет первый встреченный элемент со значением x:

>>> a = [0,0.1,"один",0]
>>> a.remove(0)
>>> a
[0.1, 'один', 0]

list.pop(i)

Возвращает элемент, размещенный по индексу i, удаляет его из списка:

>>> a = [0,0.1,"один",0]
>>> a.pop(3)
0
>>> a
[0, 0.1, 'один']

list.count(x)

Возвращает количество элементов, равных x:

>>> a = [0,0.1,"один",0]
>>> a.count(0)
2

list.clear()

Очистка списка:

>>> a = [0,0.1,"один",0]
>>> a
[0, 0.1, 'один', 0]
>>> a.clear()
>>> a
[]

Курсы Робикс, в которых изучается этот материал.

  1. Программирование на Python в Minecraft
  2. Duckietown робот с системой Автопилота
Сохраните или поделитесь
Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *