3 года назад
Программирование на языке Python. Объединение коллекций (множества, списки, словари)
Вот ссылки на статьи и ролики моего канала Old Programmer. А здесь все ссылки на мои материалы по языку Python. Обзор моего канала здесь. Сегодня говорим об языке Python. Очень интересная тема: объединение коллекций. Объединение множеств в Python Проще всего с множествами. Объединение здесь трактуется однозначно: 1. В множествах нет порядка. 2. В множествах нет одинаковых элементов. Поэтому используем стандартные методы объединения. Они представлены в программе union3000.py. Объединение списков в Python Со списками дело обстоит несколько сложнее...
Объединение простых структур данных в Python
Вы думаете, всё так просто? Да, всё просто. Но совсем не так... (Альберт Эйнштейн). Зачастую при работе в Python возникает необходимость в объединении простых структур данных. Расскажу, как сделать это изящно для списков, множеств и словарей без нагромождения лишних строк кода. Эффективные решения для объединения двух элементов и списка из таких элементов могут быть разные, поэтому для каждого типа данных рассмотрим оба кейса. Множества Для множества разницы нет. С помощью метода union мы можем...
Конвертируем два списка в словарь при помощи zip()
В нашем последнем примере мы преобразовываем в словарь один список и присваиваем одинаковое значение по умолчанию для каждого ключа в словаре. Но можно преобразовать в словарь и два списка. Давайте попробуем это сделать. Для этого мы можем использовать такую функцию Python, как zip(). Она позволяет объединить два списка...
1 год назад
Как объединить два связанных списка на Python? Это первая задача на литкоде, которую я так и не смог решить. Проблема в том, что в питоне как бы нет такой структуры. Она реализована в библиотеке collections как deque (очередь), и если ей не пользоваться, то придется сначала оформить соответвующий объект прямо в своем коде. Поначалу я ковырялся в двух данных списках, которые в условии выглядели как обычный list, а на поверку оказались объектами класса LinkedList, заранее реализованного в форме для ответа. Это означало, что работать сними как со списками, при помощи методов списков и прочих операторов, невозможно. Вообще у класса LinkedList в задаче не было ничего кроме двух атрибутов - value и next. Как и положено теории связанных списков, первый хранил значение, а второй должен был служить ссылкой на очередное значение. Тут-то я и застрял. Как должна выглядеть ссылка на очередное значение, было до отчаяния непонятно. Просветление пришло. В качестве аргумента next объект класса LinkedList принимал также объект класса LinkedList! Казалось, решение близко. Однако, как я ни бился, у меня выходили только монструозные нерабочие нечитаемые варианты. В итоге, я решил сдаться и заглянуть в решения. Смысл самого изящного и быстрого был в следующем. Автор создавал две вспомогательных ссылки cur и dummy на один объект класса LinkedList. Затем он сравнивал атрибуты val двух данных списков, и в случае если первый меньше второго, ставил ссылку cur на объект list1, а также переставлял ссылку list1 на атрибут next того же объекта list1, т.е. list1 = list1.next. В противном случае проделывалось то же самое, только с объектом list2. Несмотря на то, что я так и не отправил на проверку никакого своего решения и фактически его так и не нашел, в муках поиска ответа я узнал много нового и полезного о связанных списках, логике работы пайтон с ними, о возможности реализации собственных структур данных.
Python cоздание словаря из двух списков
Встроенная функция zip() принимает несколько итерируемых объектов и возвращает последовательность кортежей. Каждый кортеж группирует элементы объектов по их индексу. Генераторы словарей и множеств Вы, конечно, пользовались генераторами списков. Но знаете ли вы о генераторах множеств и словарей? В случае словарей отличие только в парах ключ-значение. Такие генераторы удобны для начальной инициализации значений последовательностей...