как представить значение в словре в int

names = {
"katya": {
    "age": 21,
    "height": 50,
    "gender": "famale",
},
"tanya": {
    "age": 17,
    "height": 40,
    "gender": "famale",
},
"petya": {
    "age": 22,
    "height": 40,
    "gender": "male",
},
"stepa": {
    "age": 16,
    "height": 50,
    "gender": "male",
},
} 

for name in names:
    if name["age"] >= 18:
        print("можно")
    if name["age"] < 18:
        print("нельзя")

выводится string indices must be integers


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

Автор решения: KABAN PUNK

Переменная name будет проходиться по ключам словаря, в данном случае по строкам. Поэтому к элементам стоит обращаться так:

for name in names:
    if names[name]["age"] >= 18:
        print("можно")
    else:
        print("нельзя")
→ Ссылка