#python #list #dictionary #list-comprehension
#python #Список #словарь #понимание списка
Вопрос:
Я хочу использовать понимание списка, чтобы скрыть вышеуказанное в списке кортежей, но только с подмножеством каждого словаря в кортеже.
Источник
source = [
{'gem': 'gold', 'dimensions': {"weight":120, "height":0, "color":240}, 'shine': '90', 'worth': 10000},
{'gem': 'diamond', 'dimensions': {"weight":80, "height":20, "color":10}, 'shine': '190', 'worth': 5000}
...
]
Из приведенного выше источника список должен выглядеть следующим образом после завершения:
[(120, 240),(80, 10) ]
Каждый кортеж в списке основан на dict с соответствующим индексом в источнике, но для включения в тип выбираются только части вложенного dict:
Требуемый набор данных
[(dimensions.weight, dimensions.color), ...]
Я пробовал несколько разных вещей, но не могу продвинуться дальше этого:
[g["dimensions"] for g in source]
что дает
[{"weight":120, "height":0, "color":240}, {"weight":80, "height":20, "color":10}]
Ответ №1:
Вы так близки, просто нужно указать значения, которые вы хотите включить в кортеж
[(g["dimensions"]["weight"], g["dimensions"]["color"]) for g in source]
Комментарии:
1. Конечно, нет проблем 🙂