我正在尝试通过python中最有效的方式来思考.
假设我有一个元组列表:
[('dog',12,2), ('cat',15,1), ('dog',11,1), ('cat',15,2), ('dog',10,3), ('cat',16,3)]
Run Code Online (Sandbox Code Playgroud)
假设我有一个函数,它接受这些元组中的两个并组合它们:
def my_reduce(obj1, obj2):
return (obj1[0],max(obj1[1],obj2[1]),min(obj1[2],obj2[2]))
Run Code Online (Sandbox Code Playgroud)
如何通过'key'执行有效的减少,其中key可以是第一个值,因此最终结果将是:
[('dog',12,1), ('cat',16,1)]
Run Code Online (Sandbox Code Playgroud) 我有一个大型同义词数据集(10000+)作为元组列表,如下所示:
data = [
(435347,'cat'),
(435347,'feline'),
(435347,'lion'),
(6765756,'dog'),
(6765756,'hound'),
(6765756,'puppy'),
(435347,'kitten'),
(987977,'frog')
]
Run Code Online (Sandbox Code Playgroud)
其中每个同义词由任意共享 ID 标识,在本例中为435347、6765756和987977。
我想编写一个函数,使数据看起来像这样:
processed_data = [
(435347,'cat','feline','lion','kitten'),
(6765756,'dog','hound','puppy'),
(987977,'frog')
]
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激!