11 октября 2023 13 октября 2023 Python url parse dict reduce


Однострочник для преобразования строки URL запроса в словь с данными ключ=значение

reduce(lambda a, x: {**a, **dict([x.split('=')])}, b.split('&'), dict())

Здесь три составные части, начнём с конца

python reduce parse url

dict() -  тут объявляется пустой словарь которые в будет пополняться результатами вычислений

request_body.split('&') - здесь тело строки запроса делится на лексемы состоящие из пары ключе/значение разделённых сиволом '='

lambda a, x: {**dict([x.split('=')]), **a} - здесь каждая лексема дробится по заделительному символу '=' добавляется в словарь соззданный в начале и возвращается результатом

у этого способа есть явный минус, он исключает дубирование пар ключей в теле запроса так как в славе ключи всегда уникальны


12 июля 2021 14 июля 2021 JavaScript reduce рекурсия children


Для конвертирования иерархии любой вложенности удобно применять рекурсию совместно с reduce

function object_list_2_flat_array (obj_list) {

    var conv = function(xxx, x) {
        return [x, ...x["children"].reduce(conv, xxx)];
    };
    return obj_list.reduce(conv, new Array());

};

Тут накапливающий метод reduce вызывает рекурсию для каждого узла иерархии и результаты складывает в аккумулятор.