Как я нахожу общее количество дубликатов в строке? т.е. если это было j= [1,1,1,2,2,2]
это нашло бы 4
дубликаты? Я только смог найти подсчет, который показывает, сколько раз произошло каждое отдельное число.
>>> j= [1,1,1,2,2,2]
>>> len(j) - len(set(j))
4
и кстати, j
- это список, а не строка, хотя для целей данного упражнения это не имеет значения.
Кажется, уже есть популярный ответ, но если вы хотите сохранить индивидуальное количество дубликатов, новый Counter ()
в Python 2.7 идеально подходит для этого.
>>> from collections import Counter
>>> j = [1,1,1,2,2,2]
>>> Counter(j)
Counter({1: 3, 2: 3})
>>> sum([i - 1 for i in c.values() if i > 1])
4
>>> {k: v - 1 for k, v in c.items()} # individual dupes
{1: 2, 2: 2}
Имеется обратный порт для счетчика в ActiveState