Подсчет целых чисел дубликатов в Python

Как я нахожу общее количество дубликатов в строке? т.е. если это было j= [1,1,1,2,2,2] это нашло бы 4 дубликаты? Я только смог найти подсчет, который показывает, сколько раз произошло каждое отдельное число.

6
задан SilentGhost 5 March 2010 в 10:06
поделиться

2 ответа

>>> j= [1,1,1,2,2,2]
>>> len(j) - len(set(j))
4

и кстати, j - это список, а не строка, хотя для целей данного упражнения это не имеет значения.

17
ответ дан 8 December 2019 в 04:29
поделиться

Кажется, уже есть популярный ответ, но если вы хотите сохранить индивидуальное количество дубликатов, новый 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

8
ответ дан 8 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: