0Pricing
DevOps Bootcamp · Lección

Bucles anidados con subelements

Recorra listas dentro de listas

Bucles anidados con subelements es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Listas dentro de listas

A veces cada elemento contiene su propia lista: un usuario con varias claves SSH o un grupo con muchos miembros. Esa es una estructura anidada. 🪆

La búsqueda subelements

La búsqueda subelements empareja cada elemento principal con cada elemento secundario de su lista interna y convierte la estructura anidada en iteraciones individuales.

loop: "{{ users | subelements('keys') }}"

Dos argumentos

subelements recibe la lista principal y el nombre de la clave interna que se expandirá. Produce una iteración por cada elemento secundario.

vars:
  users:
    - name: alice
      keys:
        - keyA
        - keyB

item se convierte en un par

Con subelements, item es una lista de dos partes: item.0 es el diccionario principal y item.1 es el valor secundario actual.

- ansible.builtin.debug:
    msg: "{{ item.0.name }} has {{ item.1 }}"
  loop: "{{ users | subelements('keys') }}"

Autorice muchas claves SSH

El caso clásico: proporcione a cada usuario todas sus claves SSH. item.0.name es el usuario y item.1 es una clave por iteración.

- ansible.posix.authorized_key:
    user: "{{ item.0.name }}"
    key: "{{ item.1 }}"
  loop: "{{ users | subelements('keys') }}"

El elemento secundario puede ser un diccionario

Los elementos internos también pueden ser diccionarios. En ese caso, item.1 tiene sus propios campos, como item.1.path o item.1.mode.

Cuente las iteraciones

Tres usuarios con dos claves cada uno implican seis iteraciones. subelements multiplica automáticamente los elementos principales por sus elementos secundarios.

Omita las listas internas que falten

Si a un elemento principal puede faltarle la clave interna, añada skip_missing para que subelements la ignore silenciosamente en lugar de fallar.

loop: "{{ users | subelements('keys', skip_missing=true) }}"

¿Por qué no usar dos loops?

Una tarea no puede anidar directamente dos palabras clave loop. subelements es la forma limpia y compatible de recorrer una estructura principal-secundaria en una sola tarea.

La claridad es mejor que la astucia

Los datos profundamente anidados pueden resultar difíciles de seguir. Mantenga las estructuras tan planas como pueda y recurra a subelements cuando realmente lo necesite.

Sigue siendo idempotente

Cada par es una llamada independiente al módulo, por lo que añadir una clave que ya está presente informa ok. El anidamiento no cambia nada respecto a las ejecuciones seguras.

Comprobación rápida

Al usar subelements, ¿a qué hace referencia item.0?

Resumen: bucles anidados

Convirtió los datos principales-secundarios en una estructura plana mediante subelements, utilizó item.0 e item.1 y gestionó de forma segura las listas que faltaban. A continuación: loop_control. 🎉

Preguntas frecuentes

¿La lección «Bucles anidados con subelements» es gratis?

Sí — el texto completo de «Bucles anidados con subelements» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Bucles anidados con subelements»?

Recorra listas dentro de listas Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Bucles anidados con subelements»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. La palabra clave loop sobre una lista
  2. Recorrer diccionarios
  3. Bucles anidados con subelements
  4. loop_control: label, index y pause
← Volver a DevOps Bootcamp