Как заменить элементы в списке python значениями из словаря, если элемент списка = ключ dict?

#python #list #dictionary #lambda #matching

Вопрос:

вход:

 [yellow, red, green,  blue]

{green:go, yellow:attention, red:stay}
 

как составить новый список:

 [attention, stay, go, blue]
 

есть ли способ сделать это с помощью лямбды?

Комментарии:

1. Вы имеете в виду понимание списка?

Ответ №1:

Используйте dict.get понимание внутри списка:

 lst = ["yellow", "red", "green",  "blue"]
dic = {"green":"go", "yellow":"attention", "red":"stay"}
res = [dic.get(e, e) for e in lst]
print(res)
 

Выход

 ['attention', 'stay', 'go', 'blue']
 

Комментарии:

1. спасибо, братан, отличная работа

Ответ №2:

Единственный способ использовать лямбду, который я могу придумать, — это использовать map и dict.get :

 l = ['yellow', 'red', 'green',  'blue']
d = {'green': 'go', 'yellow': 'attention', 'red': 'stay'}
out = map(lambda x: d.get(x, x), l)
print(list(out))
 

Результат

 ['attention', 'stay', 'go', 'blue']
 

Комментарии:

1. Спасибо, я думал, что без лямбды это невозможно в одной строке, но сначала комет сделал это