Напишите цикл for, который печатает вложенный словарь Keys of 1 - PullRequest
0 голосов
/ 18 сентября 2018

1> Создайте вложенный словарь, который содержит номера тем для предметов, которые вы изучаете в этом году в осеннем и весеннем семестрах.Другими словами, у вас должен быть словарь с двумя ключами «Осень» и «Весна», и значения, связанные с этими ключами, должны сами быть словарями, где ключи - это номера предметов, а значения - имена субъектов.

2> Напишите цикл for, который распечатывает номера предметов, которые вы делали осенью.

Это то, что у меня есть

my_subjects = {"Autumn": {37315:"Data", 34567:"Sci"}, "Spring": {23456:"Eng", 45879:"Math"}}

for season, season.subjects in my_subjects.items():
    print("\n Autumn Subject Numbers", season)

    for key in season.subjects:
        print(key)

, но выдается ошибка

AttributeError                            Traceback (most recent call last)
<ipython-input-208-b1fceae351e6> in <module>()
      5 
      6 
----> 7 for season, season.subjects in my_subjects.items():
      8     print("\n Autumn Subject Numbers", season)
      9 

AttributeError: 'str' object has no attribute 'subjects'

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Попробуйте с этим

my_subjects = {"Autumn": {37315:"Data", 34567:"Sci"}, "Spring": {23456:"Eng", 45879:"Math"}}

for season, data in my_subjects.items():
    print("\n Autumn Subject Numbers", season)

    for key in data:
        print(key)
0 голосов
/ 18 сентября 2018

Как насчет этого?

new_dict = {}

for k, v in my_subjects.items():
    for x, z in v.items():
        if k not in new_dict:
            new_dict[k] = [x]
        else:
            new_dict[k].append(x)
print(new_dict)
{'Autumn': [37315, 34567], 'Spring': [23456, 45879]}
0 голосов
/ 18 сентября 2018

С помощью оператора . в season.subjects вы пытаетесь получить доступ к атрибуту subjects объекта season, который не имеет такого атрибута.Вместо этого вам следует присвоить значение второго элемента в кортежах, возвращаемое my_subjects.items(), отдельной переменной:

for season, subjects in my_subjects.items():
    if season == 'Autumn':
        print("Autumn Subject Numbers:", ', '.join(map(str, subjects)))

. Это выдает:

Autumn Subject Numbers: 37315, 34567
...