Как массивы и списки работают в Python

Как массивы и списки работают в Python

Массивы и списки - одни из самых полезных структур данных в программировании, хотя мало кто действительно использует их в полной мере. Сегодня я расскажу вам об основах вместе с некоторыми простыми примерами Python.





Предпосылки

Вам не так много нужно знать заранее, чтобы изучить эти концепции. Базовые знания парадигм программирования и Python будут полезны, но это не обязательно. Прочтите наш основные примеры Python если вы не знаете, с чего начать. Если вы думаете, что Python - бесполезный язык, ознакомьтесь с нашими причинами, по которым это не так.





Хотя следующие фундаментальные идеи могут быть применены к любому языку, я продемонстрирую примеры на Python. Это легкий для изучения язык, который предоставляет отличную платформу для понимания происходящего. В добавок к этому, tutorialspoint.com предоставляет отличный онлайн-интерпретатор Python - вам даже не нужно устанавливать Python, если вы этого не хотите (если да, ознакомьтесь с нашим руководством по виртуальным средам).





Структуры данных

Что такое структура данных ? На самом базовом уровне структура данных - это способ эффективного хранения данных. Легко запутаться, потому что структуры данных не типы данных . Типы данных сообщают компилятору (или, в случае Python, интерпретатору), как данные предназначены для использования. Структуры данных определяют операции, которые могут быть выполнены, и часто реализуют определенные правила и положения.

Возможно, вы слышали о некоторых линейный типы данных (элементы являются последовательными):



  • Множество
  • Матрица
  • Справочная таблица

Сходным образом, списки часто содержат правила и методы, регулирующие их работу. Вот некоторые общие списки:

  • Связанный список
  • Двусвязный список
  • Список массивов или динамический массив

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





Множество

Начнем с самого начала. Массив - это простой набор (связанных) значений. Эти значения называются элементами. Обычно это могут быть данные любого типа, включая объекты или другие списки! Основная проблема с массивами заключается в том, что все данные должны быть одинаковыми - вы не можете хранить смешанные строки и целые числа. Ты почти всегда нужно указывать, сколько элементов вы хотите сохранить. Переменный размер или динамические массивы существуют, но массивы фиксированной длины проще начать.

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





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

Первая строка импортирует множество модуль - необходим для работы с массивами. Вторая строка создает новый массив с именем числа и инициализирует его значениями 2, 4, 6 и 8. Каждому элементу присваивается целое число значение, называемое ключ или показатель . Ключи начинаются с нуль , так числа [0] получит доступ к первому элементу ( 2 ):

Вам может быть интересно, что за 'я' используется для. Это код типа который сообщает Python, что массив будет хранить целые числа. Подобные вещи обычно не нужны в Python (это будет считаться «непифоническим»). Причина этого проста. Массивы в Python - это очень тонкая оболочка для базовых массивов C вашей операционной системы. Это означает, что они быстрые и стабильные, но они не всегда могут соответствовать синтаксису Python.

у вас нет разрешения на доступ к /index.html на этом сервере.

В этих массивах нельзя хранить смешанные типы. Допустим, вы хотите сохранить строку makeuseof.com:

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

Это не будет разрешено и вызовет исключение:

Вот как можно распечатать все элементы:

print(numbers)

Этот метод доступа к элементам массива работает хорошо и идеально подходит для правильной задачи. Это не очень хорошо для доступа ко всему массиву. Программисты по своей природе ленивы, поэтому я с радостью напишу больше, лучший код, если это означает, что я могу упростить обслуживание и уменьшить усилия по копированию и вставке.

Каждый язык программирования реализует какой-то цикл, который идеально подходит для итерации (цикла) по элементам списка. Наиболее распространены петли в то время как а также для . Python упрощает задачу, предоставляя для в петля:

for number in numbers:
print(number)

Обратите внимание, что вам не нужно было обращаться к элементам по их ключу. Это гораздо лучший способ работы с массивом. Альтернативный способ перебора списка - использование для петля:

for i in range(len(numbers)):
print(numbers[i])

Это делает то же самое, что и в предыдущем примере, хотя вам нужно было указать количество элементов в массиве ( len (автомобили) ) вместе с прохождением я как ключ к массиву. Это почти в точности тот код, который для в петли бегут. Этот способ обеспечивает немного большую гибкость и немного быстрее (хотя для в петли более чем достаточно быстрые большинство времени.)

Списки

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

Список - это особый тип массива. Самая большая разница в том, что списки могут содержать смешанный типы (помните, что массивы должны содержать элементы одного типа). Списки в Python очень просты:

беспроводная сеть не имеет действующей конфигурации IP
cars = ['Ford', 'Austin', 'Lancia']

Обратите внимание, что вам не нужно импортировать множество модуль?

Этот синтаксис объявляет список под названием cars. Внутри квадратных скобок объявляется каждый элемент списка. Каждый элемент разделяется запятой, и, поскольку каждый элемент является строкой, вы объявляете их внутри кавычек. Python знает, что это объект, поэтому Распечатать оператор выведет содержимое списка:

print(cars)

Как и в случае с массивом, вы можете перебирать элементы списка с помощью циклов:

for car in cars:
print(car)

Настоящая партийная уловка списков - их смешанный тип. Продолжайте и добавьте дополнительные данные:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

Для Python это не проблема - он даже не вызвал исключения:

В список легко добавлять новые элементы (что невозможно с массивами):

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

Вы также можете объединить два списка в один:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

Так же легко удалить элементы с помощью Удалить синтаксис:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

Это касается основ списков и массивов в Python. Почему бы не рассмотреть проект кодирования, такой как чтение и запись в Google Таблицы, чтение данных json. Может быть, вы могли бы применить свои новые навыки, чтобы настраиваемые кнопки быстрого доступа . Несмотря на то, что это другой язык программирования, эти принципы работы с массивами все еще применимы.

Делиться Делиться Твитнуть Эл. адрес 5 советов, как зарядить ваши машины VirtualBox Linux

Устали от низкой производительности виртуальных машин? Вот что вам нужно сделать, чтобы повысить производительность VirtualBox.

Читать далее
Похожие темы
  • Программирование
  • Программирование
  • Python
Об авторе Джо Коберн(136 опубликованных статей)

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

Ещё от Joe Coburn

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться