>>> l = [
... ["url","name","date","category"],
... ["hello","world","2010","one category"],
... ["foo","bar","2010","another category"],
... ["asdfasdf","adfasdf","2010","one category"],
... ["qwer","req","2010","another category"],
... ]
#Intermediate list to generate a more dictionary oriented data
>>> dl = [ (li[3],li[:3]) for li in l ]
>>> dl
[('category', ['url', 'name', 'date']),
('one category', ['hello', 'world', '2010']),
('another category', ['foo', 'bar', '2010']),
('one category', ['asdfasdf', 'adfasdf', '2010']),
('another category', ['qwer', 'req', '2010'])]
#Final dictionary
>>> d = {}
>>> for cat, data in dl:
... if cat in d:
... d[cat] = d[cat] + [ data ]
... else:
... d[cat] = [ data ]
...
>>> d
{'category': [['url', 'name', 'date']],
'one category': [['hello', 'world', '2010'], ['asdfasdf', 'adfasdf', '2010']],
'another category': [['foo', 'bar', '2010'], ['qwer', 'req', '2010']]}
Окончательные данные немного отличаются, поскольку я не включил в данные категорию (кажется мне совершенно бессмысленным), но вы можете легко добавить их, если это необходимо ...