Anonymous
Anonymous
код должен быть понятным 😄
Chebyrash
Лучше тогда *=
Andrey
я бы через словарь с лямбдами сделал
Isamu ꧁꧂
Хорошо вам с фиксированным курсом
Andrey
словарь-роутер
Andrey
ибо один и тот же код 4 раза повторяется
Andrey
или без лямбд но с функцией
Anonymous
govnokod.ru/python
Isamu ꧁꧂
if cur in exchange_rates.keys(): alldata['total'] *= exchange_rates[cur] alldada['cost'] *= exchange_rates[cur]
Isamu ꧁꧂
Я бы так сделал 🤔
Andrey
... def manage_data(cur): global alldata alldata['total'] *= exchange_rates[cur] alldada['cost'] *= exchange_rates[cur] courses = { "EUR": 58, "USD": 62, "GBP": 71, "UAH": 2, } cource_type = "EUR" manage_data(courses[cource_type]) типа того, мухи отдельно, котлеты отдельно) и при изменении курса не нужно искать где что по курсам менять
Anonymous
эта оптимизация кода по моему только в пайтон сообществе на столько развита 😄 все начинают предлагать десятки решений 😄
Andrey
Все зависит от Ваших религиозных и личных предпочтений)
Andrey
не удивлюсь если найдется кто-то кто сюда прикрутит классы и метаклассы ("зачем" это уже другой вопрос)
Andrey
на вкус и цвет фломастеры разные
Aquinary
Из языка надо выжимать по максимому
Isamu ꧁꧂
Слишком длинный джавоподобный тоже утомляет
Isamu ꧁꧂
Надо золотую середину искать, но она у всех своя
Aquinary
Я бы больше упор делал на полиморфизм кода, возможность применения отдельных её частей по отдельности. Наличие методов, которые принимают агрегированные данные из разных источников и возвращают результат и т.д. Простота не всегда хорошо, особенно если это можно упростить или унифицировать, чтобы сделать ту или иную часть кода как можно менее зависимой от других частей.
Aquinary
Надо золотую середину искать, но она у всех своя
Вот да. Восприятие сложности кода напрямую зависит от знаний инструментария в языке
Aquinary
Можно китайским кодом
Aquinary
Это когда не список[9], а a0-a9 переменные
Aquinary
И вроде как быстрее работать будет
Aquinary
Проще
Aquinary
Но какой-то такой способ)
Aquinary
Может направит кто на инфу по слиянию словарей, которые находятся в коллекции?
Aquinary
Сижу голову ломаю
Aquinary
Никак не могу сделать это
Aquinary
в коллекции* - в списке
Aquinary
Да, оно самое
Aquinary
`collections = [{'key': 'key1', 'value1': 1}, {'key': 'key2', 'value1': 1}, {'key': 'key1', 'value1': 1, 'value2': 2}]` в это `collections = [{'key': 'key2', 'value1': 1}, {'key': 'key1', 'value1': 1, 'value2': 2}]`
Chebyrash
Какой формат нужен на выходе?
Aquinary
[{'key': 'key2', 'value1': 1}, {'key': 'key1', 'value1': 1, 'value2': 2}]
Aquinary
Тильда не работает почему-то
Aquinary
Проверка
Chebyrash
Andrey 😼
Потому что тильда - для однострочных
Aquinary
Ну... попробую описать, в чём дело)
Chebyrash
Ну... попробую описать, в чём дело)
Просто покажу формат до и после
Aquinary
Есть разные источники данных. Каждый источник данных отдаёт json-кашу из кучи разных параметров и вложений внутри себя. Я обрабатываю эту кашу со всех источников и возвращаю список словарей с нужными мне ключами: lists_one = [{'name': 'name', 'value': 1}, {'name': 'name2', 'value': 1}] lists_two = [{'name': 'name', 'value2': 2}, {'name': 'name2', 'value2': 2}] А суть в том, что нужно теперь эти два списка объединить в один: result = [{'name': 'name', 'value': 1, 'value2': 2 } {'name': 'name1', 'value': 1, 'value2': 2 }]
Aquinary
Тяжело здесь форматировать
Ivan
Такое вообще легально?
Aquinary
https://pastebin.com/fRKFJYJn
Andrey 😼
Сделай список списков, пройдись по нему мапом, а внутри мапа - редьюсом и update
Andrey 😼
(ну, это приблизительно, я не питонист ¯\_(ツ)_/¯)
Andrey 😼
https://pastebin.com/fRKFJYJn
https://repl.it/@andv/BlankGiftedForce
Andrey 😼
Кайнд оф зис?
Влад
Может направит кто на инфу по слиянию словарей, которые находятся в коллекции?
по читай и посмотри примеры в сторону groupby(things, lambda x: x[‘name’])
Isamu ꧁꧂
А, стой, там список со словарями
Aquinary
Кайнд оф зис?
Сейчас попробуем разобраться, у меня же один список и внутри все словари. Может смогу как-то адоптировать
Aquinary
А, стой, там список со словарями
Да, я пробовал через update и через это выражение)
Isamu ꧁꧂
А складывать их пробовал?
Andrey 😼
Я верно понимаю, что итог - это список с объединенным результатом первого списка и объединенным результатом второго?
Andrey 😼
Если их всегда два - то можно без мапа, через редьюс и dict(a, **b)
Andrey 😼
https://repl.it/@andv/OlivedrabHarmfulNumericalanalysis
Aquinary
https://pastebin.com/eZFs2prS Как-то так в общем плане. 1. Получаю списки данных, отправляю их в self.product под нужными ключами 2. Прохожу self. product и вытаскиваю наименования ключей, засовываю их в список lists 3. Прохожу по списку lists и теперь уже вытаскиваю нужные мне данные. Не знаю как объснить, просто прохожу по всем ключам в цикле 4. Формирую единый список result со словарями внутри
Aquinary
Все данные содержат наимнование, остальное может отличаться. Задача в том, чтобы оставить только уникальные по имени товары с добавлением ключей, найденных у дубликатов
Aquinary
Я пока почитаю то, что выше мне написали
Aquinary
Может получится
Aquinary
Вроде работает. За основу взят тот же самый список, в котором свалено кучу словарей
Aquinary
Дома протестить надо на корректность
Aquinary
Потому что я хз как оно работает
Alexander
Такое вообще легально?
Оптимизация питона) Значения до 255 (примерно ) уже проинициализированы заранее и имеют одинаковый id. Более того, если ты напишешь что то вроде a, b = 257, 257( или a = 257; b = 257) , то получишь a is b == true.
Aquinary
Ребята
Aquinary
По поводу комментариев
Aquinary
Вопрос такой
Aquinary
Куда его было бы правильнее впихнуть? Это не магия, но стоило бы такие моменты тоже пояснять
Aquinary
До lists, после, или внутри for?
Aquinary
И "получаем" или "получить"?
.
Какая разница?
Aquinary
Абы как не хочется)
.
Ставишь комменты как тебе удобно и было понятно