2015-04-14 3 views
0

Я изучаю карту, фильтрую и уменьшаю функции. Выполняя упражнение, я задавался вопросом, могу ли я написать его с помощью функции карты, я немного испортил, но я не смог найти решение. Это возможно? Любая помощь будет оценена по достоинству.Могу ли я сделать это с помощью функции карты?

for f in words: 
    a = words.index(f) 
    final_dict[str(words[a])] = len(pre[a]) 

слова - это список слов, а pre - список списков.

ответ

1

dict конструктор принимает итератор пар ключ/значение, так что да:

def to_pair(item): 
    i, word = item 
    return (word, len(pre[i])) 

final_dict = dict(map(to_pair, enumerate(words))) 

(Использование final_dict.update, если у него уже есть записи.)

Смежные вопросы