Как в списке поменять строковые значения на булевы?

[['кирпич', '2', 'False'], ['шпатель', '3', 'False'], ['камень', '5', 'False'], ['лестница', '2', 'False']]

Надо поменять строковые 'False' на булевы False, при этом сохранить формат списка

[['кирпич', '2', False], ['шпатель', '3', False], ['камень', '5', False], ['лестница', '2', False]]
# такой результат должен быть

Просто замена через цикл рушит структуру.


Ответы (1 шт):

Автор решения: Andy Pavlov

Можно создать словарь замены и проверять вхождение ключа в него через метод dict.get(key, value), где value — возвращаемое значение для случая несуществующего ключа. А дальше пересобрать список с его помощью.

income = [['кирпич', '2', 'False'], ['шпатель', '3', 'False'], ['камень', '5', 'False'], ['лестница', '2', 'False']]
map_dict = {'false': False, 'true': True}
res = [[map_dict.get(e.lower(), e) for e in r] for r in income]
→ Ссылка