Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 29, 2015 20:22:33

maxibello
Зарегистрирован: 2015-08-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по реализации задачи

Всем привет

У меня вопрос, как проще и оптимальнее решить задачу:

Допустим, есть обычный словарь ключ -> значение (my_dict)

Нужно передать в метод стороннего апи список значений my_dict (без ключей). Метод вернет модифицированный список, который нужно привязать к ключам my_dict.

Как я понимаю, словарь - это неупорядоченный тип, поэтому я разбивал словарь my_dict на 2 списка: ключи и значения, передавал список значений в api, потом делал zip списка ключей со списком, полученным от api.

Но, может, есть более элегантные и быстрые способы?

Спасибо

Офлайн

#2 Авг. 29, 2015 20:34:43

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Вопрос по реализации задачи

Вы все делали правильно. Что касается элегантности, то это касается непосредственно кода, который, с одной стороны - прост, с другой стороны - короток, с третьей - гениален.



Офлайн

#3 Авг. 30, 2015 15:33:50

WoMax
Зарегистрирован: 2014-05-26
Сообщения: 124
Репутация: +  9  -
Профиль   Отправить e-mail  

Вопрос по реализации задачи

Офлайн

#4 Авг. 30, 2015 16:23:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Вопрос по реализации задачи

maxibello
Но, может, есть более элегантные и быстрые способы?
Помоему более красивый способ (если вы не фанат суперпроизводительности) это переписать если это возможно функцию чтобы она один элемент модифицировала а не список.
А элементы как модифицируются? Если внутренности элементов, то будет достаточно сделать так:
class Ta:
   ...
d={1:Ta(2),2:Ta(3)}
def f(li):
   for i in li:
       li.x+=2
[f(i) for i in d.values()]
#or 

Если создавать новый словарь то можно так:
toolz.dicttoolz.valmap(d,f)

А вообще у меня возник вопрос. А нет пакета типа регулярных выражений, но для объектов питона?
Чтобы задать два шаблона да сказать replace? Ну например в Wolfram mathematica это помоему основной способ преобразований.



Отредактировано doza_and (Авг. 30, 2015 16:26:31)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version