Списки и словари в Python. Разница и смысл
Доброго времени суток, питонисты!
Сейчас постараюсь подробно разобрать списки и словари в Python, объясню смысл их использования, и разберём их различия, а в конце подведём итог.
Списки
Что такое список?
Список это вид переменной у которой сразу несколько значений. Значения могут быть разных типов, например в одном списке может быть как и int(целое число) так и float(число с плавающей точкой) и до кучи к ним ещё и string(строка, буквы). Все данные в списке упорядоченные индексацией.
Как сделать список?
Список в коде создаётся таким путём:
my_list = [данные, через, запятую]
Числа в список забивать нужно без кавычек, а строки с одинарными либо двойными, разницы нет. Но если у вас в строке есть двойные кавычки, то обозначать строку нужно одинарными кавычками, и наоборот. В противном случае, компилятор просто потеряется и выдаст ошибку. Числа с плавающей точкой пишите именно с точкой, хоть за ошибку считаться не будет, но большинство программистов используют именно точку. В списке может быть список, а в нём словарь и так далее…
Как работать с определённым элементом в списке?
Допустим мы хотим вывести на экран определённый элемент из списка. Возьмём 3-й. А запишем в коде мы это так:
print(my_list[2])
Сразу отвечу на вопрос: почему элемент 2-ой, если на самом деле он 3-ий? Давайте вернёмся к школьной программе по математике 5-го класса. Там нам говорят что натуральные числа - числа без плавающей точки, используемые при счёте предметов. 0 и отрицательные числа не являются натуральными числами. Теперь смотрим на список. Данные - они у нас в памяти компьютера, они предметами имеющими какую либо физическую внешность не являются. Соответственно их счёт мы начинаем с нуля. Следственно: 1-ый для нашего понимания - 0-ой для понимания компьютера. Это нужно запомнить.
В прочем работа с определённым элементом из списка идентична работе с переменной, поэтому мы её разбирать не будем.
Как работать с самим списком?
Существует множество функций по работе со списками. Их вы можете найти по ссылке: тык. Сейчас мы разберём поисковые методы.
Таблица поисковых методов
Метод | Что делает |
---|---|
my_list.append(x) | Добавляет элемент в конец списка |
list.extend(L) | Расширяет список my_list, добавляя в конец все элементы списка L |
my_list.insert(i, x) | Вставляет на i-ый элемент значение x |
my_list.remove(x) | Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует |
my_list.index(x, [start [, end]]) | Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end) |
my_list.count(x) | Возвращает количество элементов со значением x |
my_list.sort([key=функция]) | Сортирует список на основе функции |
my_list.reverse() | Разворачивает список |
my_list.copy() | Поверхностная копия списка |
my_list.clear() | Очищает список |
Сохранение результата выполнения поискового метода в переменную выполняется следующим образом:
my_new_list = my_list.func(arg)
НО:
Если мы сортируем список и сохраняем новый список в переменную то
my_sorted_list = my_list.sort()
будет ошибкой. Правильнее будет сначала выполнить сортировку, а уже сортированный список сохранить в переменную
my_list.sort()
my_sorted_list = my_list
Словари
Что такое словарь?
Словарь это неупорядоченный список. Вместо индексации здесь у всех данных есть свой ключ - буквенный.
Как создать словарь?
Словари в Python объявляются таким путём:
my_dict = {
'key1':'value1'
'key2':'value2'
}
Как работать с определённым элементом словаря?
Вывести определённый элемент из словаря на экран можно вот так:
print(my_dict('key1'))
Сейчас мы вывели значение элемента в словаре с ключем 'key1'.
Точно также - работа с определённым элементом из словаря идентична работе с переменной, всё разбирать мы не будем.
Как работать с самим словарем?
Таблица методов для работы со словарями
Метод | Что делает |
---|---|
my_dict.clear() | Очищает словарь |
my_dict.copy() | Возращает копию словаря |
my_dict.get(key[, default]) | Возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None) |
my_dict.items() | Возвращает пары (ключ, значение) |
my_dict.keys() | Возвращает ключи |
my_dict.pop(key[, default]) | Удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение). |
my_dict.popitem() | Удаляет пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены |
my_dict.values() | Возвращает значения из словаря |
Подведём итоги
Для цен в магазине лучше использовать словари, можно указать для чего конкретно цена, для списка банковских клиентов - списки, можно рассортировать по алфавиту. А дальше - по аналогии.
Надеюсь статья была поучительной!