¿Cómo puedo encontrar el número total de duplicados en una cadena? es decir, si fuera j= [1,1,1,2,2,2]
, ¿encontraría 4
duplicados? Solo he podido encontrar el recuento que muestra cuántas veces ha ocurrido cada número individual.Contando duplicados enteros en Python
6
A
Respuesta
17
>>> j= [1,1,1,2,2,2]
>>> len(j) - len(set(j))
4
y por cierto, j
es una lista y no una cadena, aunque para el propósito de este ejercicio que en realidad no importa.
7
Parece que ya hay una respuesta popular, pero si también desea mantener los recuentos duplicados individuales, el nuevo objeto de colección Counter()
en Python 2.7 es perfecto para esto.
>>> 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}
Cuestiones relacionadas
- 1. Contando números duplicados en una lista
- 2. Contando elementos enteros positivos en una lista con la lista de Python comprensiones
- 3. Contando elementos de matriz en Python
- 4. Endianness de enteros en Python
- 5. Fusionar dos enteros en Python
- 6. Rangos enteros de Python
- 7. Eliminar duplicados de una matriz de enteros grandes utilizando Java
- 8. Cómo convertir cadenas en enteros en Python?
- 9. Python: cómo permitir duplicados en un conjunto?
- 10. Contando la ocurrencia más larga de secuencia repetida en Python
- 11. Contando en View Rails
- 12. Crear lista aleatoria de enteros en Python
- 13. Contando sílabas
- 14. Contando comas en una línea en bash
- 15. Contando transacciones abortadas en Clojure
- 16. Infinito Contando Loop en Brainfuck
- 17. Python: detectar duplicados usando un conjunto
- 18. Python "establecer" con elementos duplicados/repetidos
- 19. suma de python() y valores no enteros
- 20. LoadLibrary Referencia Contando
- 21. Contando y combinando filas
- 22. Eliminar duplicados en la lista de objetos con Python
- 23. Forma más rápida de eliminar duplicados en listas Python
- 24. Eliminación rápida de duplicados en numpy y python
- 25. Contando elementos en un árbol en Haskell
- 26. enteros arbitrariamente grandes en C#
- 27. Algoritmo para buscar duplicados en una matriz
- 28. Lectura de enteros del archivo binario en Python
- 29. Lista de enteros en cadena (matriz de bytes) - python
- 30. Convertir cadenas binarias en listas de enteros usando Python
Algunas sugerencias/observaciones: Uno tiene que asumir que 'c = Contador (j)' es ejecutado en alguna parte. Con tu suma de cosas, necesitas Python 2.7 para poder perder el '[]'. En segundo lugar, la cláusula 'si' es redundante. En tercer lugar, no tiene sentido crear la lista 'c.values ()'. Resultado: 'suma (i - 1 para i en c.itervalues ())' o después de algo de álgebra, pruebe 'sum (c.itervalues ()) - len (c)'. Intenta agregar un no dupe, p. 3 a la entrada. Comprueba si tu diccionario de engaños individuales es realmente lo que pretendías. HTH. –
OK ... En primer lugar, dime cómo 'i> 1' es" redundante "? Necesito ** para evitar 'i <0' en caso de que los enteros negativos alguna vez lleguen al dict. Entonces la comparación ocurre independientemente. Ahora considere una lista de elementos de 1M, donde 999,000 son '0' y luego dígame que no debo seguir adelante y evitar que' 0' también se agregue a la lista. "Después de un poco de álgebra" suena como si me estuvieras diciendo que tengo que aprenderlo, pero como acabo de decir, me gustaría asegurarme de que '-1000000' no pertenezca al dict, en caso de que sea distinto de' Counter () 'lo modifica. – jonwd7
En segundo lugar, mi uso de 'Counter()' no requiere 2.7 en absoluto ya que he incluido un enlace al backport. (Utilizo una comprensión dict pero eso puede cambiarse muy rápidamente). Por lo tanto, puedo o no ser capaz de "perder el' [] '" ... ¿Pero qué importa eso? En tercer lugar, 'itervalues' /' iteritems' era inútil para este simple ejemplo y más difícil de escribir, así que discúlpeme. Y, por último, realmente no tengo idea de lo que quieres decir con un 3 sin errores ... Imprimirá '..., 3: 0}' y eso puede ser o no exactamente lo que OP * et todos * quieren pasar en esa situación. 'i> 0' entonces? – jonwd7