Python 我怎样才能得到John';要返回的经济id?
遍历data_struct中的每个类,找到一个John,并获取其“id” 注意“a”约翰。如果你有不止一个怎么办?世界上有很多约翰 因此,请确保您正在思考“John”在您的设计中的含义 如果每个名字只有一个,那么给学生编一本名字字典可能是明智的,这样你就可以按名字查找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
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)