Я пытаюсь улучшить время вычислений моего кода, поэтому я хочу заменить циклы на функции карты.
Для каждого ключа в словаре я проверяю, больше ли оно определенного значения, и вставляяэто в новый словарь под тем же ключом:
Мой оригинальный код:
dict1={'a':-1,'b':0,'c':1,'d':2,'e':3}
dict_filt = {}
for key in dict1.keys():
if dict1[key]>1:
dict_filt[key] = dict1[key]*10
print (dict_filt)
вывод: {'d': 20, 'e': 30}, и это работает, нокогда я пытаюсь с картой:
dict1={'a':-1,'b':0,'c':1,'d':2,'e':3}
dict_filt = {}
def for_filter (key):
if dict1[key]>1:
dict_filt[key] = dict1[key]*10
map (for_filter ,dict1.keys())
print (dict_filt)
я получаю пустой словарь
Я пытался заставить его работать с лямбда-выражением:
map (lambda x: for_filter(x) ,dict1.keys())
или определить словари как глобальныено он по-прежнему не работает.
Я буду рад получить помощь
Мне не нужен оригинальный словарь, поэтому, если проще работать с одним словарем, все равно в порядке