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.

¿Cómo iterar una lista con una ventana de tamaño n y operar en los elementos coincidentes y no coincidentes?

Tengo dos listas de elementos, y quiero comparar dentro de una ventana, y las cosas que no encajan/combinan en una ventana. Por ejemplo,

reference_window_list = ["a b c", "p q r", "b c d"]
input_elements = "a z p a b c p e p q r" # ....  

Debería ser capaz de llamar a my_func() desde un loop como,

my_func('a') // Primer elemento de la lista
my_func('z') // Segundo elemento de la lista
my_func('p') // Tercer elemento de la lista
my_func('a b c') // Cuarto grupo de elementos que coinciden con la ventana de referencia
my_func('p')
....
my_func('p q r')
...

Pensé que podría hacer un bucle a través de una ventana de 3 elementos:

for i, (previ, currenti, nexti) in enumerate(zip(word_list, word_list[1:], word_list[2:])):
    find_match(reference_window, previ, currenti, nexti)

Pero no resuelve mi problema. Agradecería cualquier ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Podrías intentar hacer un bucle a través de los input_elements y comprobar si cada elemento o grupo de elementos coincide con alguno de los elementos en la reference_window_list. Puedes hacer esto haciendo un bucle a través de los input_elements y luego un bucle a través de la reference_window_list para comprobar si hay alguna coincidencia.

    Por ejemplo:

    for element in input_elements:
        for window in reference_window_list:
            if element == window:
                # Haz algo
    

Comments are closed.