Panda_Code
@Panda_Code
Ruby fun

Как посчитать количество ключей во вложенных словарях?

Надо посчитать количество немецких машин. Мой код:
cars = {
    'Audi': {'A3': 33000, 'A4': 35000, 'A5': 45000, 'A6': 65000},
    'BMW': {'X1': 34000, 'X5': 40000, 'X6': 50000, 'M8': 60000},
    'MAZDA': {'MAZDA6': 33000, 'CX-5': 47000, 'CX-9': 55000, 'MX': 65000},
}

def amount_german_cars(cars):
    german_cars = ['Audi', 'BMW']  # Немецкая марка
    for i in range(0, len(german_cars)):
        if german_cars[i] in cars:  # если немецкая марка есть в словаре
            print(cars[german_cars[i]])  # то перечислить и посчитать

У меня получается только перечислить, не получается посчитать кол-во машин, т.е. ключей.
Пробовал через sum(), не выходит.
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
0xD34F
@0xD34F
def countCarsByBrand(cars, brands):
  return sum(len(v.keys()) for k, v in cars.items() if k in brands)


print(countCarsByBrand(cars, [ 'Audi', 'BMW' ]))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
System Engineer
if german_cars[i] in cars:  # если немецкая марка есть в словаре
            print(cars[german_cars[i]])  # то перечислить и посчитать

Суньте между строк счётчик (переменную с числом) и инкрементируйте (ок, прибавляйте единичку) при каждой итерации, а потом выводите полученное значение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы