在python中访问字典中的字典列表

时间:2017-03-07 04:55:16

标签: python-2.7

让我们看看我搞砸了多么糟糕 这应该是看起来像什么

Students
1 - MICHAEL JORDAN - 13
2 - JOHN ROSALES - 11
3 - MARK GUILLEN - 11
4 - KB TONEL - 7
Instructors
1 - MICHAEL CHOI - 11
2 - MARTIN PURYEAR - 13

两个额外的阵列怎么会让我为一个循环。我为第一个调用了for循环,因此有学生和教师。然后我调用了键和值。有人可以看看这个并指出我正确的方向来解决这个混乱

users = {
 'Students': [
     {'first_name':  'Michael', 'last_name' : 'Jordan'},
     {'first_name' : 'John', 'last_name' : 'Rosales'},
     {'first_name' : 'Mark', 'last_name' : 'Guillen'},
     {'first_name' : 'KB', 'last_name' : 'Tonel'}
  ],
 'Instructors': [
     {'first_name' : 'Michael', 'last_name' : 'Choi'},
     {'first_name' : 'Martin', 'last_name' : 'Puryear'}
  ]
 }



for i in users:

    for i in Students:
        print ([i['first_name'], i['last_name']] , + len([i['first_name'], i['last_name']




    for i in Instructors:
        print ([i['first_name'], i['last_name']] , + len([i['first_name'], i['last_name'0]

1 个答案:

答案 0 :(得分:0)

基本上,你试图用你的循环覆盖i的值,你应该避免这样做,当你只使用for i in users:时你只是通过键进行迭代 of dict users,你可以使用dict.items()或dict.iteritems()来访问字典中的键值对。

以下是您的更新代码,以防万一。

 for usr, info in users.iteritems():
     print "{}".format(usr)
     for i, _info in enumerate(info, 1):
         name = "{first_name} {last_name}".format(**_info).upper()
         print "{} - {} - {}".format(i, name, len(name)-1)

我将留给您理解代码中使用的代码和内置函数。