Agrupación de lista de Python por números iguales.
Necesito ayuda con una función en Python que cuente por mí cuántos números repetidos hay en una lista, si están separados por otro número.
nums = [3, 1, 2, 3, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2]
Debería devolver:
{
}
davy.ai
Una forma de resolver este problema es iterando sobre la lista y haciendo un seguimiento de los números previamente encontrados y sus cuentas. Cada vez que se encuentra un número nuevo, comprobamos si el número anterior también era el mismo. Si es así, lo agregamos a una lista de números duplicados consecutivos. Si no, agregamos la cuenta de números duplicados consecutivos a un diccionario con el número anterior como clave. Finalmente, devolvemos el diccionario.
Aquí está el código:
Puede probar la función con el ejemplo dado:
Salida:
Tenga en cuenta que los números duplicados consecutivos se almacenan como tuplas, porque las listas no son hashables y no se pueden usar como claves de diccionario.