2 added 255 characters in body edited Sep 28 '14 at 22:26 RunnyKine 29.4k33 gold badges9595 silver badges166166 bronze badges DeleteDuplicatesBy may be faster if used as follows: DeleteDuplicatesBy[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}, First]  {{{1, 2, 3}, 10}, {{1, 2, 4}, 30}}  For your second need: lis = GatherBy[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}, First]; mean = Mean /@ Map[Last, lis, {2}];  Then: Transpose[{lis[[All, 1, 1]], mean}]  {{{1, 2, 3}, 15}, {{1, 2, 4}, 30}}  As a function: delDupMean[data_] := With[{lis = GatherBy[data, First]}, Transpose[{lis[[All, 1, 1]], Mean /@ Map[Last, lis, {2}]}] ]  Use: delDupMean[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}]  {{{1, 2, 3}, 15}, {{1, 2, 4}, 30}}  DeleteDuplicatesBy may be faster if used as follows: DeleteDuplicatesBy[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}, First]  {{{1, 2, 3}, 10}, {{1, 2, 4}, 30}}  DeleteDuplicatesBy may be faster if used as follows: DeleteDuplicatesBy[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}, First]  {{{1, 2, 3}, 10}, {{1, 2, 4}, 30}}  For your second need: lis = GatherBy[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}, First]; mean = Mean /@ Map[Last, lis, {2}];  Then: Transpose[{lis[[All, 1, 1]], mean}]  {{{1, 2, 3}, 15}, {{1, 2, 4}, 30}}  As a function: delDupMean[data_] := With[{lis = GatherBy[data, First]}, Transpose[{lis[[All, 1, 1]], Mean /@ Map[Last, lis, {2}]}] ]  Use: delDupMean[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}]  {{{1, 2, 3}, 15}, {{1, 2, 4}, 30}}  1 answered Sep 28 '14 at 21:58 RunnyKine 29.4k33 gold badges9595 silver badges166166 bronze badges DeleteDuplicatesBy may be faster if used as follows: DeleteDuplicatesBy[{{{1, 2, 3}, 10}, {{1, 2, 3}, 20}, {{1, 2, 4}, 30}}, First]  {{{1, 2, 3}, 10}, {{1, 2, 4}, 30}}