Ответы пользователя по тегу Алгоритмы
  • Зачем нужна сериализация?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Сериализация:
    • это обобщённый процесс для структур языка программирования.
    • нужна для любого взаимодействия в системе, выходящего за рамки передачи данных в текущем скрипте: даже если вам кажется, что она не используется - это не так, она всё равно используется под капотом.

    Сериализация гарантирует (для поддерживаемых структур данных), что после процесса сериализации/десериализации вы получите те же самые структуры данных.

    Не будь её, вам бы понадобилось вручную создавать свои протоколы и методы перевода данных в вид, пригодный для передачи куда-либо.
    Ну и, модуль pickle - это встроенная реализация сериализации, но в то же время - одна из многих. Вы можете использовать, например, json, или yaml. Что угодно, что переведёт обычные структуры данных в пригодную для передачи форму (строку, байтовая строка) и вернёт (десериализует) обратно.
    Ответ написан
    7 комментариев
  • Как изменить имена ключей в словаре python?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Возможности просто переименовать ключ в словарях питона нет.

    Пример присваивания новому ключу значение из старого ключа, с удалением старого ключа.
    dictionary[new_key] = dictionary.pop(old_key)

    Если же вопрос ваш в том, как построить сам алгоритм замены, то могу предложить следующий:

    # словарь
    d1 = {1:'a', 2:'b', 3:'c', 4:'d', 5:'e'}
    # словарь замен: ключ - исходный ключ из d1, значение - на какой ключ его меняем
    replacements = {1: 'one', 4: 'four', 5: 'five'}
    
    for i in d1:
        if i in replacements:
            d1[replacements[i]] = d1.pop(i)
    Ответ написан
    5 комментариев
  • Java developer: знание классических алгоритмов — о чем это?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Начал изучать Java недавно, но все же вот мои 5 копеек.
    Собственно, тут даже и от языка программирования не зависит особо: классические структуры и алгоритмы как бы должен знать любой программист: списки, очереди, множества, хэш-массивы и т.п. К алгоритмам же относятся: различные сортировки, поиск и т.п.
    Конкретно в Java: Thinking In Java, глава 11
    Но, конечно, более каноничный труд по структурам, а особенно по алгоритмам — это «Искусство программирования» Кнута
    Ответ написан
    1 комментарий