Python 我怎样才能得到John';要返回的经济id?

Python 我怎样才能得到John';要返回的经济id?,python,Python,遍历data_struct中的每个类,找到一个John,并获取其“id” 注意“a”约翰。如果你有不止一个怎么办?世界上有很多约翰 因此,请确保您正在思考“John”在您的设计中的含义 如果每个名字只有一个,那么给学生编一本名字字典可能是明智的,这样你就可以按名字查找 next(student.id for student in data_struct['econ'] if student.name == 'John') 或者,对于具有唯一名称的词典版本 johns = list(s for

遍历data_struct中的每个类,找到一个John,并获取其“id”

注意“a”约翰。如果你有不止一个怎么办?世界上有很多约翰

因此,请确保您正在思考“John”在您的设计中的含义

如果每个名字只有一个,那么给学生编一本名字字典可能是明智的,这样你就可以按名字查找

next(student.id for student in data_struct['econ'] if student.name == 'John')
或者,对于具有唯一名称的词典版本

johns = list(s for students in data_struct.values() for s in students if s.name == "John")

for john in johns:
    print(john.id)

可以使用
[]
而不是
list()
{}
而不是
dict()
。这(大部分)是相同的,但并不隐藏在语法糖后面。查看list()将为在任何地方使用生成器表达式而不是列表理解做好准备。
johns = list(s for students in data_struct.values() for s in students if s.name == "John")

for john in johns:
    print(john.id)
student_by_name = dict((student.name, student) for students in data_struct.values() for student in students)

print(student_by_name["John"].id)