# Listas

Como en el lenguaje cotidiano, una lista en ROBO Pro Coding también es un conjunto ordenado de elementos como, por ejemplo, una lista «To-Do» (de cosas por hacer) o una lista de la compra. Los elementos de una lista pueden ser de cualquier tipo y el mismo valor puede aparecer más de una vez en una lista.

### Crear una lista

#### **crear lista con**

Con el bloque **crear lista con** se pueden insertar los valores iniciales en una nueva lista. En este ejemplo se crea una lista de palabras y se coloca en una variable denominada **letras**:

[![Bild1_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/KiObild1-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/KiObild1-sp.PNG)

A esta lista la denominamos \[«alpha», «beta», «gamma»\].

Aquí se muestra la creación de una lista de **números**:

[![Bild2_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/2aabild2-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/2aabild2-sp.PNG)

Así se crea una lista de **colores**:

[![Bild3_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/T04bild3-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/T04bild3-sp.PNG)

Es menos común, aunque posible, crear una lista a partir de valores de diferentes tipos:

[![Bild4_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/e9Fbild4-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/e9Fbild4-sp.PNG)

#### Cambiar el número de entradas

Para modificar el número de entradas, haga clic o toque el símbolo del engranaje. Con esta acción se abrirá una nueva ventana. Puede arrastrar subbloques de elementos desde la parte izquierda de la ventana hasta el bloque de lista en la parte derecha para añadir una nueva entrada:

Aunque el nuevo elemento se ha añadido abajo en este ejemplo, se puede agregar en cualquier lugar. Del mismo modo, los subbloques de elementos no deseados se pueden arrastrar hacia la izquierda desde el bloque de lista.

#### Crear lista con el elemento

Con el bloque **crear lista con el elemento** puede generar una lista que contenga el número especificado de copias de un elemento. Por ejemplo, los siguientes bloques colocan la variable **palabras** en la lista \[«muy», «muy», «muy»\].

[![Bild5_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Iavbild5-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Iavbild5-sp.PNG)

### Comprobación de la extensión de una lista

#### **está vacía**

El valor del bloque **está vacía** es **verdadero** cuando la entrada se corresponde con una lista vacía, y **falso** cuando se da un caso distinto. ¿Es **verdadera** esta entrada? El valor del bloque siguiente sería **falso**, porque la variable Colores no está vacía: contiene tres elementos.

[![Bild6_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/6E7bild6-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/6E7bild6-sp.PNG)

Tenga en cuenta la similitud del texto con el bloque **está vacía**.

#### **Longitud de**

El valor del bloque **longitud de** se corresponde con el número de elementos de la lista que se utilizan como entrada. Por ejemplo, el valor del siguiente bloque sería 3, ya que el **Color** contiene tres elementos:

[![Bild7_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/2aTbild7-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/2aTbild7-sp.PNG)

Tenga en cuenta que el bloque **longitud de** indica cuántos elementos contiene la lista y no cuántos elementos diferentes hay en ella. Por ejemplo, a continuación se muestra 3 aunque las**palabras** se componen de tres copias del mismo texto:

[![Bild8_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bmBbild8-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bmBbild8-sp.PNG)

Tenga en cuenta la similitud del texto con el bloque **longitud de**.

### Buscar elementos en una lista

Estos bloques encuentran la posición de un elemento en una lista. El siguiente ejemplo tiene el valor 1 porque «muy» aparece por primera vez al principio de la lista de palabras (\[«muy», «muy», «muy»\]).

[![Bild9_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/74fbild9-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/74fbild9-sp.PNG)

El resultado siguiente es 3, ya que «muy» aparece por última vez en **palabras** en la posición 3.

[![Bild10_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Xi1bild10-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Xi1bild10-sp.PNG)

Si el elemento no aparece en ninguna parte de la lista, el resultado es el valor 0, como se muestra en este ejemplo:

[![Bild11_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/cmdbild11-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/cmdbild11-sp.PNG)

Estos bloques se comportan de la misma manera que los bloques para buscar letras en un texto.

### Acceder a elementos de una lista

#### Acceder a un único elemento

Recuerde la definición de la lista **Colores**:

[![image-1623519862088.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623519862088.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623519862088.png)

El siguiente bloque se pone de color azul, ya que es el segundo elemento de la lista (comenzando a contar por la izquierda):

[![Bild13_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/GKEbild13-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/GKEbild13-sp.PNG)

Este se pone verde, ya que es el segundo elemento (contando desde el extremo derecho):

[![Bild14_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/YJfbild14-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/YJfbild14-sp.PNG)

Este obtiene el primer elemento, rojo

[![Bild15_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/A7Rbild15-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/A7Rbild15-sp.PNG)

Este obtiene el último elemento, amarillo:

[![Bild16_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/97vbild16-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/97vbild16-sp.PNG)

Esto selecciona aleatoriamente un elemento de la lista, con la misma probabilidad de mostrar uno de los elementos rojo, azul, verde o amarillo.

[![Bild17_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/V5Obild17-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/V5Obild17-sp.PNG)

#### Acceder a un elemento y eliminarlo

En el menú desplegable se cambia el bloque **acceder a... de la lista** por el bloque **acceder a ... de la lista** **y eliminar** , que da el mismo resultado, pero también cambia la lista:

[![Bild18_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/r9Kbild18-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/r9Kbild18-sp.PNG)

Este ejemplo establece la variable **primera letra** en «alpha» y deja las letras restantes (\[«beta», «gamma»\]) en la lista.

[![Bild19_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/vdzbild19-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/vdzbild19-sp.PNG)

#### Eliminar una entrada

Si selecciona **eliminar** en el menú desplegable, desaparece el surco a la izquierda del bloque:

[![Bild20_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/twEbild20-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/twEbild20-sp.PNG)

Así, se elimina el primer elemento de **letras**.

#### Obtener una sublista

El bloque **en la lista ... Obtener sublista** se asemeja al bloque **acceder a... de la lista** con la diferencia de que extrae una sublista en lugar de un solo elemento. Existen varias opciones para especificar el principio y el final de la sublista:

[![Bild21_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild21-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild21-sp.PNG)

[![Bild22_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild22-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild22-sp.PNG)

En este ejemplo se crea una nueva lista de **primera letra**. Esta nueva lista contiene dos elementos: \[«alpha», «beta»\].

[![Bild23_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild23-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild23-sp.PNG)

Tenga en cuenta que este bloque no modifica la lista original.

### Añadir elementos a una lista

#### Crear elementos en una lista

El bloque **reemplazar en la lista...** sustituye el elemento que se encuentra en una determinada posición de una lista por otro elemento.

[![Bild24_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild24-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild24-sp.PNG)

Puede consultar el significado de las opciones desplegables individuales en la sección anterior.

El siguiente ejemplo destaca dos cosas:

1. La lista **palabras** se crea con 3 elementos: \[«muy», «muy», «muy»\].
2. El tercer elemento de la lista se reemplaza por «bueno». El nuevo valor de **palabras** es \[«muy», «muy», «bueno»\]

[![Bild25_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild25-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild25-sp.PNG)

#### Añadir elementos en una posición determinada de la lista

Se accede al bloque **insertar en la lista ...** a través del menú desplegable del bloque **reemplazar en la lista...**:

[![Bild26_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild26-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild26-sp.PNG)

Inserta un nuevo elemento en la posición especificada de la lista, antes del elemento que estaba previamente en esa posición. El siguiente ejemplo (basado en un ejemplo anterior) hace referencia a tres cosas:

1. La lista **palabras** se crea con 3 elementos: \[«muy», «muy», «muy»\].
2. El tercer elemento de la lista se reemplaza por «bueno». Por tanto, el nuevo valor de **palabras** es \[«muy», «muy», «bueno»\].
3. La palabra «Ser» se inserta al principio de la lista. Por tanto, el valor definitivo de **palabras** es \[«ser», «muy», «muy», «bueno»\].

[![Bild27_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild27-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild27-sp.PNG)

### Dividir secuencias de caracteres y unir listas

#### Hacer lista a partir de texto

El bloque **hacer lista a partir de texto** divide el texto especificado en partes con ayuda de un delimitador:

[![Bild28_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild28-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild28-sp.PNG)

En el ejemplo anterior se muestra una nueva lista que contiene tres fragmentos de texto: «311», «555» y «2368».

#### Hacer texto a partir de lista

El bloque **hacer texto a partir de lista** fusiona una lista en un solo texto con la ayuda de un delimitador:

[![Bild29_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild29-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild29-sp.PNG)

En el ejemplo anterior se muestra un nuevo texto con el valor: «311-555-2368».

### Bloques relacionados

#### Imprimir una lista

El bloque **imprimir** de la categoría Texto puede generar listas. El resultado del siguiente programa es la salida de la consola mostrada:

[![Bild30_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild30-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild30-sp.PNG)

[![Konsole_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/konsole-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/konsole-sp.PNG)

#### Implementar algo en cada elemento de una lista

El bloque **para cada** de la categoría Control realiza una operación en cada elemento de una lista. Por ejemplo, este bloque imprime cada elemento de la lista individualmente:

[![Bild31_sp.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild31-sp.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild31-sp.PNG)

Esto no elimina los elementos de la lista original.

Consulte también los ejemplos referentes a [Bloques de interrupción de bucles](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/schleifen "Amolar").