2024-04-27 08:01:03 发布
网友
假设我有一个这样的列表:(假设你不知道这个列表中有多少个列表)
list=[['food','fish'],['food','meat'],['food','veg'],['sports','football']..]
如何合并列表中的项目,如下所示:
list=[['food','fish','meat','veg'],['sports','football','basketball']....]
也就是说,如果所有嵌套列表包含相同的项之一,则将它们合并到同一个列表中。你知道吗
替代defaultdict的“强制”选项可以更好地处理已经按键顺序排列的数据,如果您不想在其上构建数据结构(即,只处理组)。。。你知道吗
defaultdict
data = [['food','fish'],['food','meat'],['food','veg'],['sports','football']] from itertools import groupby print [[k] + [i[1] for i in v] for k, v in groupby(data, lambda L: L[0])]
但是defaultdict更灵活,更容易理解,所以请使用@Blender的答案。你知道吗
使用defaultdict创建一个字典,将类型映射到值,然后获取项:
>>> from collections import defaultdict >>> d = defaultdict(list) >>> items = [['food','fish'],['food','meat'],['food','veg'],['sports','football']] >>> for key, value in items: ... d[key].append(value) ... >>> [[key] + values for key, values in d.items()] [['food', 'fish', 'meat', 'veg'], ['sports', 'football']]
替代
defaultdict
的“强制”选项可以更好地处理已经按键顺序排列的数据,如果您不想在其上构建数据结构(即,只处理组)。。。你知道吗但是
defaultdict
更灵活,更容易理解,所以请使用@Blender的答案。你知道吗使用
defaultdict
创建一个字典,将类型映射到值,然后获取项:相关问题 更多 >
编程相关推荐