4 подписчика
Как объединить два связанных списка на Python? Это первая задача на литкоде, которую я так и не смог решить.

Проблема в том, что в питоне как бы нет такой структуры. Она реализована в библиотеке collections как deque (очередь), и если ей не пользоваться, то придется сначала оформить соответвующий объект прямо в своем коде.

Поначалу я ковырялся в двух данных списках, которые в условии выглядели как обычный list, а на поверку оказались объектами класса LinkedList, заранее реализованного в форме для ответа. Это означало, что работать сними как со списками, при помощи методов списков и прочих операторов, невозможно. Вообще у класса LinkedList в задаче не было ничего кроме двух атрибутов - value и next. Как и положено теории связанных списков, первый хранил значение, а второй должен был служить ссылкой на очередное значение. Тут-то я и застрял. Как должна выглядеть ссылка на очередное значение, было до отчаяния непонятно.

Просветление пришло. В качестве аргумента next объект класса LinkedList принимал также объект класса LinkedList! Казалось, решение близко. Однако, как я ни бился, у меня выходили только монструозные нерабочие нечитаемые варианты.

В итоге, я решил сдаться и заглянуть в решения.

Смысл самого изящного и быстрого был в следующем. Автор создавал две вспомогательных ссылки cur и dummy на один объект класса LinkedList. Затем он сравнивал атрибуты val двух данных списков, и в случае если первый меньше второго, ставил ссылку cur на объект list1, а также переставлял ссылку list1 на атрибут next того же объекта list1, т.е. list1 = list1.next. В противном случае проделывалось то же самое, только с объектом list2.

Несмотря на то, что я так и не отправил на проверку никакого своего решения и фактически его так и не нашел, в муках поиска ответа я узнал много нового и полезного о связанных списках, логике работы пайтон с ними, о возможности реализации собственных структур данных.
1 год назад
1K подписчиков
Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Продолжение статей по numpy Проолжаем заниматься библиотекой numpy Продолжим наши изыскания в области библиотеки numpy. Возможностей, действительно много. Массивы как множества Рассмотрим набор функций numpy, трактующих массивы как множества. Пример #!/usr/bin/python3 import numpy as np m1 = np.array([12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]) m2 = np...
1 месяц назад
766 подписчиков
Столкнулся с интересной и совершенно неочевидной для меня задачкой, которую решил почти методом научного тыка. Условия: Заказчик требует сгенерировать двумерный список из четырех списков использую только list comprehensions. На выходе должно получиться ни больше ни меньше, а вот это: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] Очевидно, что генерировать четыре списка и потом сложить их в один- не лучшая идея. По всей видимости решение должно укладываться в одну строчку, нужно просто найти все переменные, с которыми можно поработать в цикле. Однако первое однострочное решение, которое пришло...
1 год назад
1,2K подписчиков
Метод join() в Python используется для объединения элементов последовательности в одну строку. Он применяется к строке-разделителю и последовательности, которую мы хотим объединить, и возвращает новую строку, в которой элементы последовательности соединены с помощью строки-разделителя. Пример использования метода join() В данном примере у нас есть список my_list, с фруктами, и строка-разделитель delimiter со значением ", ". Мы применяем метод join() к строке-разделителю и передаем ему список my_list...
10 месяцев назад
6 подписчиков
В первой части статьи я говорил о том, как правильно хранить и загружать большие объемы числовых данных. В этой части статьи поговорим о технический аспектах вычислений. Напомню, что в конце предыдущей статьи мы остановились на том, что загрузили весь массив числовых данных в xarray.DataArray. Переходим к вычислениям. Задача Напоминаю формулировку задачи (чтоб не бегать по ссылкам). Нужно рассчитать распределение весов акций в портфеле для каждого дня, если разрешено покупать акции только с положительным...
5 лет назад