es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dividir el arreglo por una sección personalizada.

Tengo un array

[('active',1),('active',2),('active',3),('active',4),('not active',7),('not active',5),('not active',6),('active',7),('active',8),('active',9)]

¿Hay alguna manera de obtener un array como este?

[[('active',1),('active',2),('active',3),('active',4)],[('not active',7),('not active',5),('not active',6)],[('active',7),('active',8),('active',9)]]
Tags:  

Answer

  1. Avatar for davy.ai

    Sí, puedes usar la función itertools.groupby de Python para agrupar elementos en el arreglo basándose en su primer elemento. Aquí hay un fragmento de código de ejemplo que logra esto:

    import itertools
    
    arr = [('activo',1),('activo',2),('activo',3),('activo',4), ('no activo',7),('no activo',5),('no activo',6),('activo',7),('activo',8),('activo',9)]
    
    grupos = []
    for clave, grupo in itertools.groupby(arr, lambda x: x[0]):
        grupos.append(list(grupo))
    
    print(grupos)
    

    Este código primero importa el módulo itertools, el cual contiene funciones útiles para trabajar con iteradores (incluyendo la función groupby). Luego, define el arreglo de entrada arr.

    Después, itera sobre la salida de llamar a itertools.groupby en el arreglo. Esta función agrupa elementos en el arreglo basándose en una función clave, que en este caso es lambda x: x[0] (es decir, el primer elemento de cada tupla). La variable grupos es luego agregada como listas de tuplas basadas en su primer elemento.

    Finalmente, el script imprime la lista resultante de listas de tuplas, en el formato solicitado por la pregunta.

Comments are closed.