Rumah > Soal Jawab > teks badan
有一个list:
[
{'time':2016,'t':'jsaidja'},
{'time':2016,'t':'wtfja'},
{'time':2016,'t':'cbsasja'},
{'time':2015,'t':'45gj'},
{'time':2015,'t':'gt43ga'}
]
如何转换成
{
2016:['jsaidja','wtfja','cbsasja'],
2015:['45gj','gt43ga']
}
ringa_lee2017-04-18 09:16:12
source = [
{'time': 2016, 't': 'jsaidja'},
{'time': 2016, 't': 'wtfja'},
{'time': 2016, 't': 'cbsasja'},
{'time': 2015, 't': '45gj'},
{'time': 2015, 't': 'gt43ga'}
]
from collections import defaultdict
result = defaultdict(list)
for item in source:
result[item['time']].append(item['t'])
print result
PHPz2017-04-18 09:16:12
Sediakan kaedah lain:
from itertools import groupby
source = [
{'time': 2016, 't': 'jsaidja'},
{'time': 2016, 't': 'wtfja'},
{'time': 2016, 't': 'cbsasja'},
{'time': 2015, 't': '45gj'},
{'time': 2015, 't': 'gt43ga'}
]
result = {}
for time, g in groupby(sorted(source, key=lambda s: s['time']), key=lambda s: s['time']):
result[time] = [e['t'] for e in g]
print result