Программирование

Как работают массивы и списки в 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] 

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

Python Arrays

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

Вы не можете хранить смешанные типы в этих массивах. Скажем, вы хотите сохранить строку «.com»:

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

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

Python Arrays

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

 print numbers 

Python Arrays

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

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

 for number in numbers: print number 

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

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

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

Списки

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

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

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

Заметьте, как вам не нужно импортировать модуль массива ?

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

 print cars 

Python Arrays

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

 for car in cars: print car 

Python Arrays

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

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

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

Python Arrays

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

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

Python Arrays

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

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

Python Arrays

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

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

Python Arrays

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

Вы узнали что-нибудь новое? Хотите увидеть более сложный контент? Дайте нам знать ваши мысли в комментариях ниже!

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика