2 回答

TA贡献1909条经验 获得超7个赞
你可以这样做:
from collections import defaultdict as ddict
group = ddict(list)
for name, url in arr:
group[name].append(url)
如果你绝对要它作为一个列表的列表,你可以再跟进这一点:
group = [[name, *urls] for name, urls in group.items()]
编辑:这是需要注意的重要的是,上述符合Python 3中,这是什么,你应该使用反正工作。然而,为了完整起见,如果你正在使用python 2.7,然后使用此:
group = [[name] + urls for name, urls in group.items()]

TA贡献1784条经验 获得超2个赞
试试这个:
a = [['name1', 'url1'],
['name1', 'url2'],
['name1', 'url3'],
['name2', 'url1'],
['name2', 'url2'],
['name3', 'url1']]
d = {}
for elem in a:
if elem[0] not in d:
d[elem[0]] = []
d[elem[0]].append(elem[1:])
输出:
{'name1': [['url1'], ['url2'], ['url3']],
'name2': [['url1'], ['url2']],
'name3': [['url1']]}
添加回答
举报