вторник, 4 июня 2019 г.




В Python'е метод списка index() вернёт индекс только первого элемента. Если есть несколько то вот замена:


list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
[i for i, n in enumerate(list_numbers) if n == 3]

>>[0, 3, 4, 8]

воскресенье, 19 мая 2019 г.

Стрелки вперёд\назад



Надо было реализовать виджет, где стрелки ходят по списку вепрёд\назад, выдавая текущее значение (картинку) в спец. окошко. Убил на этот вопрос не менее 5 часов чистого времени, в итоге так и не справился. Но вот решение, подсказали

class Simpleiterator:
    def __init__(self,somelist):
        self.list = somelist
        self.ind = 0
        self.length = len(somelist)
    def forward(self):
        self.ind +=1
        self.ind = self.ind % self.length
        return self.list[self.ind]
    def back(self):
        self.ind -=1
        self.ind = self.ind % self.length
        return self.list[self.ind]

   
a = Simpleiterator(['q', 'w', 'e', 'r', 't'])



Моя ошибка в том, что очень переусложнил - написал 2 итератора для каждой стрелки, пытался сделать список, разбитый по текущему значению, и ещё несколько ненужных действий. В итоге было всё ок кроме главного - оба итератора не листали слаженно, т.е каждый запоминал только своё состояние.

А всё оказалось настолько просто.
Причём закольцованный проход по списку я точно делал, и 'остаток от деления на длину списка' использовал, эх...


пятница, 25 января 2019 г.


Написал конвертер дат - переводит текущую либо выбранную дату из нашего юлианского календаря во французский революционный. Аналогичные общедоступные (например этот, первый в выдаче) ошибаются на 12 дней, видимо у них всех один исходник. А мой ок.

Sic semper evello mortem tyrannis!

суббота, 5 января 2019 г.

Структуры данных и алгоритмы




Сеньеры рассказали, что надо знать для собеседования по теме „Структуры данных“. Примечательно, что все четверо опрошенных назвали одинаковые темы, к которым я подобрал короткие ответы. Получилось типа cheat sheet. Код не мой, источник указан либо не указан.


Рассмотрены темы: структуры данных; алгоритмы сортировки; алгоритмы поиска; сложность алгоритмов. Всё изложено совсем коротко, но в достаточном объёме для успешного интервью.