Назначьте значения словаря нескольким переменным в одной строке (поэтому мне не нужно запускать одну и ту же функцию для создания словаря для каждой из них) - PullRequest
0 голосов
/ 06 августа 2020

Итак, у меня есть функция, которая возвращает словарь. Проблема в том, что я хочу присвоить значения словаря нескольким переменным, поэтому мне приходится запускать функцию несколько раз. Есть ли способ сделать это, запустив функцию только один раз? Есть ли какой-нибудь изящный способ сделать это?

def myFunction():
    a=1
    b=2
    c=3
    d=4
    
    df_out={"a":a, "b":b,"c":c,"d":d}
    
a1=myFunction()["a"]
b1=myFunction()["b"]
c1=myFunction()["c"]
d1=myFunction()["d"]

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 06 августа 2020
def myFunction():
    a=1
    b=2
    c=3
    d=4

    return {"a":a, "b":b,"c":c,"d":d}

a1, b1, c1, d1 = myFunction().values()
1 голос
/ 06 августа 2020

Присвойте результат переменной, а затем назначьте каждую переменную.

d = myFunction()
a1 = d["a"]
b1 = d["b"]
c1 = d["c"]
d1 = d["d"]

Я не думаю, что для этого есть однострочный текст.

0 голосов
/ 06 августа 2020

Вы можете использовать operator.itemgetter:

from operator import itemgetter

i = itemgetter('a', 'b', 'c', 'd')
a1, b1, c1, d1 = i(myFunction())

print(a1, b1, c1, d1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...