Я предполагаю, что вы хотите объединить словари, в которых дата равна 0, в конце вашего результата, сортируя по uid
.
В этом предположении вы можете использовать ключ кортежа, как показано ниже:
students = [{"name": "Student1", "JoiningDate": 2012, "uid": 5},
{"name": "Student2", "JoiningDate": 2008, "uid":10},
{"name": "Student3", "JoiningDate": 2017, "uid": 1},
{"name": "Student4", "JoiningDate": 0, "uid":15},
{"name": "Student5", "JoiningDate": 2010, "uid":6},
{"name": "Student6", "JoiningDate": 0, "uid": 3}]
res = sorted(students, key=lambda x: (x['JoiningDate']==0, x['JoiningDate'], x['uid']))
print(res)
[{'JoiningDate': 2008, 'name': 'Student2', 'uid': 10},
{'JoiningDate': 2010, 'name': 'Student5', 'uid': 6},
{'JoiningDate': 2012, 'name': 'Student1', 'uid': 5},
{'JoiningDate': 2017, 'name': 'Student3', 'uid': 1},
{'JoiningDate': 0, 'name': 'Student6', 'uid': 3},
{'JoiningDate': 0, 'name': 'Student4', 'uid': 15}]