Coding for KidsCoding for Kids
Níveis CriativosDesafiosGuia do Professor
Votar em funcionalidades
Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível

Listas Avançadas
Compreensões de Listas

Neste capítulo vamos explorar novas maneiras de usar listas em Python, referentes à otimização, compartimentalização e até mesmo à criação de grandes listas multidimensionais, como Matrizes que se assemelham bastante a tabelas.

Para este nível, trabalharemos com Compreensões de Lista, que são listas que podem ser criadas a partir de outras listas apenas selecionando certos componentes delas. Isso também é feito de forma direta, em uma única linha de código, sem a necessidade de inserir manualmente uma lista ou criar automações complexas.

Guide

Objetivo

Pegue e organize todos os vegetais de raiz na despensa para que você possa armazená-los em seus devidos lugares usando list comprehensions.

A despensa possui vários sacos cheios de vegetais de raiz que precisam ser organizados, tais como: potatoes, onions e garlic. Provavelmente, há vegetais que estragaram. Remova os vegetais que estão bons e armazene-os nas caixas a que pertencem.

Para realizar isso, você precisa identificar quais itens estão dentro de cada saco. Existem três (3) constantes de lista que contêm as informações de cada um dos sacos, chamados: left_sack, middle_sack, right_sack. Essas constantes de lista correspondem aos sacos posicionados no campo nos locais indicados por seus nomes.

Caminhe até as marcações de X iluminadas à frente de cada saco e use a função speak() para identificar o conteúdo de cada saco utilizando as constantes, por exemplo: player.speak(left_sack). Uma vez que você identifique o conteúdo dentro de cada saco, identifique os itens que precisam ser removidos, como vegetais com: "Bad", "Spoiled" ou "Rotten" em seu nome.

Você precisa criar novas listas que contenham apenas itens bons para consumo; você poderia fazer isso manualmente, mas levaria um tempo e poderia ficar bastante confuso. Para realizar isso de maneira mais eficaz, você pode criar uma lista a partir de outra lista, isto é conhecido como List Comprehension.

A partir das três (3) constantes de lista: left_sack, middle_sack, right_sack crie três novas listas chamadas: potatoes, onions e garlic que não contenham os itens indesejados dos sacos. List Comprehensions permitem que você crie novas listas sem escrever muito código, por exemplo:

# Original list sack = ["Potatoes", "Sweet Potatoes", "Spoiled Potatoes" ] # List Comprehension potatoes = [x for x in sack if not "Spoiled" in x] # This will create a list named potatoes with: # ["Potatoes", "Sweet Potatoes"]

No exemplo acima, a lista chamada potatoes é criada a partir da lista chamada sack, contendo apenas ["Potatoes", "Sweet Potatoes"] e excluindo "Spoiled Potatoes". Isso é alcançado criando um loop for autônomo, neste caso utilizando x como índice para percorrer a lista e as declarações for / in para identificar e excluir o elemento indesejado, que seja qualquer string que contenha a palavra "Spoiled".

Para revisar, verifique se as constantes de lista possuem a palavra "Bad", "Spoiled" ou "Rotten" usando a função speak(). Crie as listas potatoes, onions e garlic usando List Comprehensions, removendo os elementos indesejados encontrados em cada lista.

Uma vez que essas listas sejam criadas, caminhe até cada uma das três (3) marcações douradas de X à frente das caixas com os sinais de vegetais, e coloque as listas, usando a função place(), nas caixas correspondentes para completar o nível. Os locais são indicados pelos sinais, sendo onions na caixa da esquerda, potatoes na caixa central e garlic na caixa da esquerda.

Livro de Código