这是我目前的代码,但我必须按字母顺序对各个部分进行排序,并按升序对 id 编号进行排序。有谁知道我可以在哪里以及如何在此处插入 .sort/.sorted 函数?
class_lists = {}
class_sections = {}
for i in student_data:
for j in i['enlistment']:
if j['course code'] not in class_lists.keys():
class_lists[j['course code']] = [{"section":j['section'],'class list':[i['id']]}]
class_sections[j['course code']] = [j['section']]
else:
if j['section'] in class_sections[j['course code']]:
index_ = class_sections[j['course code']].index(j['section'])
class_lists[j['course code']][index_]['class list'].append(i['id'])
else:
class_lists[j['course code']].append({"section":j['section'],'class list':[i['id']]})
class_sections[j['course code']].append(j['section'])
>>> print{class_lists}
{'UK 60': [
{
'section': 'B',
'class list': [
'201007',
'201005',
'211008',
]
},
{
'section': 'A',
'class list': [
'201077',
'201065',
'211088',
]
}
]
}
答案 0 :(得分:3)
在构建完列表后对所有列表进行排序,而不是边走边做:
for sections in class_lists.values():
sections.sort(key=lambda s: s['section'])
for section in sections:
section['class_list'].sort()
答案 1 :(得分:3)
你可以这样排序:
class_lists['UK 60'] = sorted(class_lists['UK 60'], key=lambda item: item['section'])
for section in class_lists['UK 60']:
section['class list'].sort()