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.

¿Qué sistema de plantilla podría usar para generar fragmentos de texto para todas las combinaciones de matrices de entrada?

Tengo una ‘plantilla’ que deseo usar para crear potencialmente millones de fragmentos de texto, digamos esto:

Fragmento {{loop1}}_{{loop2}}

Ahora, defino que el loop1 es desde 1 hasta 3 y loop2 es desde A hasta C. Quiero un sistema de plantillas que genere:

Fragmento 1_A
Fragmento 1_B
Fragmento 1_C
Fragmento 2_A
Fragmento 2_B
...
Fragmento 3_C

¿Qué debo usar en este caso?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para este caso de uso, puedes utilizar el motor de plantillas Jinja2 o Mustache. Ambos motores de plantillas admiten construcciones de bucle que te permiten generar múltiples fragmentos basados en una plantilla.

    Aquí tienes un ejemplo de cómo podrías usar Jinja2 para lograr esto:

    from jinja2 import Template
    
    template_str = 'Fragmento {{loop1}}_{{loop2}}'
    template = Template(template_str)
    
    for i in range(1, 4):
        for j in ['A', 'B', 'C']:
            result = template.render(loop1=i, loop2=j)
            print(result)
    

    Esto generaría los fragmentos deseados:

    Fragmento 1_A
    Fragmento 1_B
    Fragmento 1_C
    Fragmento 2_A
    Fragmento 2_B
    Fragmento 2_C
    Fragmento 3_A
    Fragmento 3_B
    Fragmento 3_C
    

    Ten en cuenta que Jinja2 utiliza una sintaxis similar a Mustache, por lo que el mismo enfoque se podría utilizar también con Mustache.

Comments are closed.