# Listas

Como na linguagem cotidiana, uma lista no ROBO Pro Coding é uma coleção ordenada de elementos, como, por exemplo, uma lista de "tarefas" ou uma lista de compras. Os itens em uma lista podem ser de qualquer tipo e o mesmo valor pode aparecer mais de uma vez em uma lista.

### Criar uma lista

#### **criar lista com**

Com a o bloco **criar lista com**, você pode inserir os valores iniciais em uma nova lista. Este exemplo cria uma lista de palavras e as coloca em uma variável chamada **letras**:

[![Bild1_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/W09bild1-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/W09bild1-por.PNG)

Referimo-nos a esta lista como \["alfa", "beta", "gama"\].

Isso mostra a criação de uma lista de **números** :

[![Bild2_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/2DPbild2-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/2DPbild2-por.PNG)

Para fazer uma lista de **cores**:

[![Bild3_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/iCcbild3-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/iCcbild3-por.PNG)

É menos comum, mas possível, fazer uma lista de valores de diferentes tipos:

[![Bild4_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/8jJbild4-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/8jJbild4-por.PNG)

#### Alterar o número de entradas

Para alterar o número de entradas, clique ou toque no símbolo da engrenagem. Isso abrirá uma nova janela. Você pode arrastar os sub-blocos do item do lado esquerdo da janela para o bloco da lista à direita para adicionar uma nova entrada:

Embora o novo item tenha sido adicionado abaixo no exemplo, ele pode ser adicionado em qualquer lugar. Da mesma forma, sub-blocos de itens indesejados podem ser arrastados para a esquerda do bloco de listas.

#### Criar lista com elemento

Com o bloco **criar lista com elemento**, você pode criar uma lista que contém o número especificado de cópias de um elemento. Por exemplo, os blocos a seguir colocam as variáveis **palavras** na lista \["muito", "muito", "muito"\].

[![Bild5_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/UC7bild5-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/UC7bild5-por.PNG)

### Verificar o comprimento de uma lista

#### **está vazio**

O valor de um bloco **está vazio** é **verdadeiro** se sua entrada for a lista vazia e **falso** se for qualquer outra coisa. Esta entrada é **verdadeira**? O valor do bloco a seguir seria **falso** porque as variáveis cores não estão vazias: Ele tem três elementos.

[![Bild6_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Jptbild6-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Jptbild6-por.PNG)

Observe a semelhança com o bloco **está vazio** para o texto.

#### **Comprimento de**

O valor do bloco **comprimento de** é o número de elementos que estão na lista usados como entrada. O valor do bloco seguinte seria, por exemplo, 3, uma vez que a **cor** tem três elementos:

[![Bild7_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/yL7bild7-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/yL7bild7-por.PNG)

Observe que o bloco **comprimento de** informa quantos elementos existem na lista, não quantos elementos diferentes existem nela. Por exemplo, o seguinte é 3, embora as **palavras** sejam compostas por três cópias do mesmo texto:

[![Bild8_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/fJzbild8-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/fJzbild8-por.PNG)

Observe a semelhança com o bloco **comprimento de** para o texto.

### Buscar elementos em uma lista

Esses blocos encontram a posição de um elemento em uma lista. O exemplo a seguir tem o valor 1 porque a primeira ocorrência de "muito" está no início da lista de palavras (\["muito", "muito", "muito"\]).

[![Bild9_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/C3Pbild9-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/C3Pbild9-por.PNG)

O resultado do seguinte é 3 porque a última ocorrência de "muito" em **palavras** está na posição 3.

[![Bild10_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/aoSbild10-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/aoSbild10-por.PNG)

Se o elemento não aparecer em nenhum lugar da lista, o resultado será o valor 0, como neste exemplo:

[![Bild11_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/yF9bild11-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/yF9bild11-por.PNG)

Esses blocos se comportam da mesma maneira que os blocos para localizar letras no texto.

### Obtenha elementos de uma lista

#### Recuperar um único item

Lembre-se da definição da lista de **cores**:

[![Bild3_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/iCcbild3-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/iCcbild3-por.PNG)

O bloco a seguir recebe a cor azul porque é o segundo elemento da lista (contando a partir da esquerda):

[![Bild13_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/urXbild13-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/urXbild13-por.PNG)

Ele fica verde porque é o segundo elemento (contando da extremidade direita):

[![Bild14_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/nekbild14-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/nekbild14-por.PNG)

Este recebe o primeiro elemento, vermelho:

[![Bild15_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/jbjbild15-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/jbjbild15-por.PNG)

Este resulta no último elemento, amarelo:

[![Bild16_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/b9sbild16-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/b9sbild16-por.PNG)

Este seleciona aleatoriamente um elemento da lista, com uma probabilidade igual de retornar um dos elementos vermelho, azul, verde ou amarelo.

[![Bild17_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Mohbild17-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Mohbild17-por.PNG)

#### Obter e remover um item

O menu suspenso é usado para alterar o bloco **recuperar da lista ...** para o bloco **recuperar da lista ...** **e remover** , que fornece o mesmo resultado, mas também altera a lista:

[![Bild18_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/WE4bild18-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/WE4bild18-por.PNG)

Este exemplo define a **primeira letra** da variável como "alfa" e deixa as letras restantes (\["beta", "gama"\]) na lista.

[![Bild19_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/4tybild19-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/4tybild19-por.PNG)

#### Remover uma entrada

Ao selecionar **Remover** no menu suspenso, o item à esquerda do bloco desaparecerá:

[![Bild20_por.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/onYbild20-por.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/onYbild20-por.PNG)

Isso remove o primeiro elemento das **letras**.

#### Obter uma sublista

O bloco **da lista ... obter sublista** é semelhante ao bloco em **obter da lista ...**, exceto por extrair uma sublista em vez de um único elemento. Existem várias opções para especificar o início e o fim da sublista:

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

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

Neste exemplo, uma nova lista de **primeiras letras** é criada. Esta nova lista tem dois elementos: \["alfa", "beta"\].

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

Observe que este bloco não altera a lista original.

### Adicionar elementos a uma lista

#### Substituir elementos de uma lista

O bloco **na lista ... substituir** substitui o elemento em uma determinada posição em uma lista por outro elemento.

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

O significado das opções suspensas individuais pode ser encontrado na seção anterior.

O exemplo a seguir faz duas coisas:

1. A lista**palavras** é criada com 3 elementos: \["muito", "muito", "muito"\].
2. O terceiro elemento da lista é substituído por "bom". O novo valor das **palavras** é \["muito", "muito", "bom"\]

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

#### Inserir elementos em um ponto específico de uma lista

O **bloco inserir na lista ... no** bloco é chamado por meio do menu suspenso do bloco **substituir na lista ...:**

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

Ele insere um novo elemento na posição especificada na lista, antes do elemento que estava anteriormente nesta posição. O exemplo a seguir (baseado em um exemplo anterior) faz três coisas:

1. A lista **palavras** é criada com 3 elementos: \["muito", "muito", "muito"\].
2. O terceiro elemento da lista é substituído por "bom". O novo valor das **palavras** é \["muito", "muito", "bom"\].
3. A palavra "Seja" é inserida no início da lista. O novo valor das **palavras** é \["muito", "muito", "bom"\].

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

### Dividir correntes e unir listas

#### Criar uma lista a partir de um texto

O módulo **criar lista a partir do texto** divide o texto especificado em partes com a ajuda de um delimitador:

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

O exemplo acima retorna uma nova lista que contém três trechos de texto: "311", "555" e "2368".

#### Crie um texto a partir de uma lista

O módulo **criar texto a partir de uma lista** combina uma lista em um único texto com a ajuda de um separador:

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

No exemplo acima, um novo texto é retornado com o valor: "311-555-2368".

### Blocos relacionados

#### Impressão de uma lista

O módulo **impressão** na categoria Texto pode gerar listas. O resultado do programa a seguir é a saída do console mostrada:

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

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

#### Executar algo para cada elemento em uma lista

O bloco **para cada** na categoria Controle executa uma operação em cada item de uma lista. Por exemplo, este bloco imprime cada item da lista individualmente:

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

Isso não remove os itens da lista original.

Veja também os exemplos para os [blocos de cancelar loop](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/schleifen "Desbastar") .