Ответ 1
Просто для развлечения, все следующие команды также дают желаемый результат:
[email protected]@l
[email protected]@l
[email protected]@l
Count[[email protected], [email protected]]
Count[[email protected], [email protected]{}]
[email protected]@[email protected]
[email protected][l, # &]
[email protected]@SortBy[l, # &]
И многое другое, конечно.
Изменить
Вот небольшой экспериментальный эксперимент (не серьезный)
l = RandomInteger[{1, 10^2}, 10^7];
t2[x_] := {Timing[x], ToString[[email protected]]};
SetAttributes[t2, HoldAll]
Grid[Reverse /@
{t2[[email protected][l]],
t2[[email protected][l]],
t2[[email protected][l]],
t2[Count[BinCounts[l], [email protected]]],
t2[[email protected][l]],
t2[[email protected]@[email protected]],
t2[Count[BinLists[l], [email protected]]]},
Frame -> All]
BTW: Обратите внимание на разницу между BinLists[ ]
и BinCounts[ ]
Изменить
Более подробный обзор DeleteDuplicates
vs Tally
t = Timing;
[email protected]@
Table[l = RandomInteger[{1, 10^i}, 10^7];
{[email protected]@[email protected]@[email protected],
[email protected]@[email protected]@[email protected]},
{i, Range[7]}]
Осторожно! Log Plot!