Python:如何访问作为字典值的对象的属性?
访问字典中对象属性的方法
嗨,这个问题其实很好解决,咱们结合你的例子一步步说清楚~
首先看你的字典结构:dict = {'people': [<Bob>], 'animals': [<Frank>]},这里要注意:'people'和'animals'对应的都是列表,每个列表里才是你要的Bob或Frank对象。所以访问属性的核心是先拿到对象,再调用它的属性。
方式1:通过键直接定位访问
如果你明确知道要访问哪个键下的对象,直接按层级取就行:
- 访问Bob的姓名:
dict['people'][0].name - 访问Bob的年龄:
dict['people'][0].age - 访问Frank的性别:
dict['animals'][0].sex
解释一下:dict['people']先拿到包含Bob的列表,[0]取列表里的第一个元素(也就是Bob对象),最后.属性名就能获取对应的属性值了。
方式2:遍历所有值中的对象
如果想批量处理dict.values()返回的所有对象,因为values()给出的是字典所有值的集合(这里每个值都是列表),所以需要嵌套遍历:
# 遍历字典的所有值(每个值是一个对象列表) for obj_list in dict.values(): # 遍历每个列表里的对象 for obj in obj_list: # 访问并打印对象的属性 print(f"姓名: {obj.name}, 年龄: {obj.age}, 性别: {obj.sex}")
运行这段代码就能输出Bob和Frank的所有属性啦。
额外提示
如果你的列表里有多个对象(比如people里有Bob和Alice),只要调整列表的索引就行,比如访问Alice的属性用dict['people'][1].name,逻辑是完全一样的。
内容的提问来源于stack exchange,提问作者JungleFever
相关产品推荐
相关产品推荐

