@propython

Страница 150 из 228
Isamu ꧁꧂
14.03.2018
09:50:45
Хорошо вам с фиксированным курсом

Andrey
14.03.2018
09:50:54
словарь-роутер

ибо один и тот же код 4 раза повторяется

или без лямбд но с функцией

Google
Stan671
14.03.2018
09:54:51
govnokod.ru/python

Isamu ꧁꧂
14.03.2018
09:55:04
if cur in exchange_rates.keys(): alldata['total'] *= exchange_rates[cur] alldada['cost'] *= exchange_rates[cur]

Я бы так сделал ?

Andrey
14.03.2018
10:04:35
... 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]) типа того, мухи отдельно, котлеты отдельно) и при изменении курса не нужно искать где что по курсам менять

Stan671
14.03.2018
10:06:38
эта оптимизация кода по моему только в пайтон сообществе на столько развита ? все начинают предлагать десятки решений ?

Andrey
14.03.2018
10:07:12
Все зависит от Ваших религиозных и личных предпочтений)

не удивлюсь если найдется кто-то кто сюда прикрутит классы и метаклассы ("зачем" это уже другой вопрос)

morpho
14.03.2018
10:08:04
Вы будто пишете шеллкод на асме..)

Оптимизаторы)))

Andrey
14.03.2018
10:09:32
на вкус и цвет фломастеры разные

Aquinary
14.03.2018
10:11:50
Из языка надо выжимать по максимому

morpho
14.03.2018
10:13:43
Не, ну правда, какой смысл в этом практический сделать очень краткий код на питоне? Может я чего-то не понимаю

Google
Isamu ꧁꧂
14.03.2018
10:18:26
Слишком длинный джавоподобный тоже утомляет

Надо золотую середину искать, но она у всех своя

Aquinary
14.03.2018
10:19:01
Не, ну правда, какой смысл в этом практический сделать очень краткий код на питоне? Может я чего-то не понимаю
Я бы больше упор делал на полиморфизм кода, возможность применения отдельных её частей по отдельности. Наличие методов, которые принимают агрегированные данные из разных источников и возвращают результат и т.д. Простота не всегда хорошо, особенно если это можно упростить или унифицировать, чтобы сделать ту или иную часть кода как можно менее зависимой от других частей.

Надо золотую середину искать, но она у всех своя
Вот да. Восприятие сложности кода напрямую зависит от знаний инструментария в языке

morpho
14.03.2018
10:23:54
Вы аду видели? Там избыточного кода...

Зато все ясно и безопасно)

Не думаю, что дело в краткости, вот инструментарий да

Хотя дело вкуса, просто хотелось услышать мнения) но спасибо, вас понял

Aquinary
14.03.2018
10:28:31
Можно китайским кодом

Это когда не список[9], а a0-a9 переменные

И вроде как быстрее работать будет

Проще

Но какой-то такой способ)

Может направит кто на инфу по слиянию словарей, которые находятся в коллекции?

Сижу голову ломаю

Никак не могу сделать это

в коллекции* - в списке

Aquinary
14.03.2018
14:20:30
Да, оно самое

`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}]`

Google
xPushkin
14.03.2018
14:21:03
Какой формат нужен на выходе?

Aquinary
14.03.2018
14:22:49
[{'key': 'key2', 'value1': 1}, {'key': 'key1', 'value1': 1, 'value2': 2}]

Тильда не работает почему-то

Проверка

xPushkin
14.03.2018
14:23:13
Andrey ?
14.03.2018
14:23:16
Потому что тильда - для однострочных

[{'key': 'key2', 'value1': 1}, {'key': 'key1', 'value1': 1, 'value2': 2}]
Принцип что-то вообще не ясен

Aquinary
14.03.2018
14:24:28
Ну... попробую описать, в чём дело)

xPushkin
14.03.2018
14:26:36
Ну... попробую описать, в чём дело)
Просто покажу формат до и после

Aquinary
14.03.2018
14:31:24
Есть разные источники данных. Каждый источник данных отдаёт 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 }]

Тяжело здесь форматировать

Иван
14.03.2018
14:33:08


Aquinary
14.03.2018
14:34:46
https://pastebin.com/fRKFJYJn

Andrey ?
14.03.2018
14:36:06
Сделай список списков, пройдись по нему мапом, а внутри мапа - редьюсом и update

(ну, это приблизительно, я не питонист ¯\_(ツ)_/¯)

https://pastebin.com/fRKFJYJn
https://repl.it/@andv/BlankGiftedForce

Кайнд оф зис?

Влад
14.03.2018
14:43:35
Может направит кто на инфу по слиянию словарей, которые находятся в коллекции?
по читай и посмотри примеры в сторону groupby(things, lambda x: x[‘name’])

Google
Isamu ꧁꧂
14.03.2018
14:45:35
А, стой, там список со словарями

Aquinary
14.03.2018
14:45:36
Кайнд оф зис?
Сейчас попробуем разобраться, у меня же один список и внутри все словари. Может смогу как-то адоптировать

А, стой, там список со словарями
Да, я пробовал через update и через это выражение)

Isamu ꧁꧂
14.03.2018
14:46:27
А складывать их пробовал?

Andrey ?
14.03.2018
14:47:18
Я верно понимаю, что итог - это список с объединенным результатом первого списка и объединенным результатом второго?

Если их всегда два - то можно без мапа, через редьюс и dict(a, **b)

https://repl.it/@andv/OlivedrabHarmfulNumericalanalysis

Aquinary
14.03.2018
14:55:55
https://pastebin.com/eZFs2prS Как-то так в общем плане. 1. Получаю списки данных, отправляю их в self.product под нужными ключами 2. Прохожу self. product и вытаскиваю наименования ключей, засовываю их в список lists 3. Прохожу по списку lists и теперь уже вытаскиваю нужные мне данные. Не знаю как объснить, просто прохожу по всем ключам в цикле 4. Формирую единый список result со словарями внутри

Все данные содержат наимнование, остальное может отличаться. Задача в том, чтобы оставить только уникальные по имени товары с добавлением ключей, найденных у дубликатов

Я пока почитаю то, что выше мне написали

V
14.03.2018
14:57:10
легально.

Aquinary
14.03.2018
14:57:14
Может получится



Дома протестить надо на корректность

Потому что я хз как оно работает

Alexander
15.03.2018
05:27:38
Оптимизация питона) Значения до 255 (примерно ) уже проинициализированы заранее и имеют одинаковый id. Более того, если ты напишешь что то вроде a, b = 257, 257( или a = 257; b = 257) , то получишь a is b == true.

Aquinary
15.03.2018
07:29:00
Ребята

По поводу комментариев

Вопрос такой

Google
Aquinary
15.03.2018
07:30:49


До lists, после, или внутри for?

И "получаем" или "получить"?

Никита
15.03.2018
07:38:40
Какая разница?

Aquinary
15.03.2018
07:39:31
Абы как не хочется)

Никита
15.03.2018
07:40:06
Ставишь комменты как тебе удобно и было понятно

Ну а вообще, такие простые вещи в коде не комментируют

Aquinary
15.03.2018
07:43:53
Если рассматривать цикл как единый кусок, то да Но для чего это делается - не совсем может быть понятным в контексте целого метода. Нет, я понимаю, что описать действия метода надо в докстринг, но вот некоторые вещи, вроде "зачем я делаю отдельный список ключей словаря" всё же нуждаются хоть в каком-нибудь пояснении

Ну, не мне говорить, не так много опыта ?

Иногда казусы на ровном месте бывают, один из ключей имеет значение "0", хотя он должен явно иметь эту цифру больше. А я просто забыл, что разные источники данных возвращают разные наименования и чтобы всё работало как надо, нужно вернуть полный список всех данных

Там получается, что за раз не получится гетом больше 100 позиций получить

V
15.03.2018
10:07:51
Ну, не мне говорить, не так много опыта ?
комментируй все что считаешь важным для себя, не слушай никого))

Aquinary
15.03.2018
14:09:07
А self параметры в классе докстрингом надо описывать в init или в самом классе?

Страница 150 из 228