原数据为
要求用python求得如下结果
#coding=utf-8 dates = [ {'id': 1, 'date': '2010/9/24'}, {'id': 1, 'date': '2010/9/20'}, {'id': 2, 'date': '2011/9/22'}, {'id': 2, 'date': '2011/9/20'}, {'id': 1, 'date': '2010/9/22'}, {'id': 2, 'date': '2011/9/24'} ] dates.sort(key=lambda x: (x['id'], x['date'])) date_length = len(dates) for i in range(date_length): j = i + 1 dates[i]['date1'] = dates[j]['date'] if j < date_length and dates[i]['id'] == dates[j]['id'] else '' print dates
字典加单向链表,对数据遍历一次,id做key。
插入字典,key不存在则创建链表,key存在则插入链表,最后对字典每个键值对进行遍历,每个值的链表进行遍历即可。