Единственная причина, по которой вы захотите это сделать, - это если в предыдущем коде есть еще один await
или если вы каким-то образом обработаете результат перед его возвратом. Другой способ, которым это может происходить, - это try/catch
, который изменяет порядок обработки исключений. Если вы ничего не делаете, тогда вы правы, нет причин добавлять накладные расходы на создание метода async
.
Если вы используете Python 3, а не устаревший Python, вы можете просто сделать это:
{i+1: v for i, v in enumerate(d1['vals'])}
Использование словарного понимания
d2 = {k:v for k,v in zip(d1["inds"],d1["vals"])}
Словарь толкований добавляет слой ненужной сложности. Вы можете просто сделать это:
d1 = {'inds': [1, 2, 3, 4,], 'vals': [0.28, 0.84, 0.71, 0.03]}
result = dict(zip(d1["inds"],d1["vals"]))
print(result)
{1: 0.28, 2: 0.84, 3: 0.71, 4: 0.03}
Если вы используете Python 3.7, вы можете сделать это тоже:
result = dict(zip(*d1.values()))
Попробуйте использовать цикл for:
d1 = {'inds': [1, 2, 3, 4,], 'vals': [0.28, 0.84, 0.71, 0.03]}
keys = d1['inds']
vals = d1['vals']
d2 = {}
for idx, key in enumerate(keys):
d2[key] = val[idx]