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

2024-05-16 09:25:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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'

Tags: ingt主题for字典myitems编号
3条回答

试试这个

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]}

使用season.subjects中的.运算符,您正在尝试访问season对象的subjects属性,该对象没有此类属性。您应该将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

相关问题 更多 >