当前位置: 代码迷 >> python >> 编写一个for循环,打印1个嵌套字典的键
  详细解决方案

编写一个for循环,打印1个嵌套字典的键

热度:42   发布时间:2023-06-19 09:31:59.0

1>创建一个嵌套字典,其中包含您在秋季和春季学期中今年正在做的学科的学科编号。 换句话说,您应该有一个带有2个键的字典,“秋天”和“春天”,并且与这些键关联的值本身应该是字典,其中键是主题编号,值是主题名称。

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'

随着. 运营商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

试试这个

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)

这个怎么样 ?

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]} 
  相关解决方案