我有一个字典A,其中包含以下值:
dict_A ={"George Washington":{
'lname':'Washinghton',
'fname':'George',
'class_id':'math',
'teacher':'John Doe',
'end_year_score' : 8}
我将其转换为列表A
List_A = [x for x in dict_A.iteritems()]
我的List_A现在如下:
[(George Washington', {, u'fname': 'George', u'class_id' : 'math', u'teacher' : 'John Doe', u'end_year_score' : 8})]
新修改
List_B的示例
List_B = [(George Washington', {, u'fname': 'George', u'lname': 'Washington' u'class_id' : 'math', u'teacher' : 'John Doe', u'end_year_score' : 8}), (Genghis Khan', {u'fname': 'Genghis ', u'lname':'Khan', u'class_id' : 'math', u'teacher' : 'John Doe', u'end_year_score' : 6}), ('Queen Victoria', {u'fname': 'Queen', u'lname':'Victoria', u'class_id' : 'math', u'teacher' : 'John Doe', u'end_year_score' : 5}), etc...,]
但就像我说我有一个List_B作为我的List_A对的价值。
现在假设我想根据List_B的 end_year_score 的数值对List_A进行排序。我该怎么做?
我试过这个:
List_A.sort(key=lambda x: x[4]) >>> IndexError: tuple index out of range
List_A.sort(key=lambda x: x[1,4]) >>> TypeError: tuple indices must be integers, not tuple
List_A.sort(key=lambda x: x[1]['end_year_score') >>> TypeError: unhashable type: 'dict'
实际上可能吗?
答案 0 :(得分:2)
你的元组有一个字符串和一个字典
这就是你可以这样做的方式
List_A.sort(cmp = lambda x,y:cmp(x[1]['end_year_score'],y[1]['end_year_score']))