Lists and data abstraction · Listas e abstração de dados
Why a list?
- A program often needs many values at once, like a class of scores.
- One variable per value would be messy.
- A list holds many values under one name — a useful data abstraction.
Por que uma lista?
- Um programa frequentemente precisa de muitos valores ao mesmo tempo, como uma turma de notas.
- Uma variável por valor seria confuso.
- Uma lista guarda muitos valores sob um único nome — uma abstração de dados útil.
What is a data abstraction?
- An abstraction hides detail so you can think about the whole, not the parts.
- A list lets you treat 1 value or 1000 values the same way.
- You write the same code no matter how long the list is.
O que é uma abstração de dados?
- Uma abstração esconde detalhes para que você possa pensar no todo, não nas partes.
- Uma lista permite tratar 1 valor ou 1000 valores da mesma maneira.
- Você escreve o mesmo código independentemente do quanto a lista é longa.
Make a list and read it
- Write items inside square brackets:
[10, 20, 30]. - Get one item by its index (its position). Python starts at
0. scores[0]is the first item;scores[-1]is the last item.
Crie uma lista e leia-a
- Escreva itens dentro de colchetes:
[10, 20, 30]. - Pegue um item pelo seu índice (sua posição). Python começa em
0. scores[0]é o primeiro item;scores[-1]é o último item.
scores = [10, 20, 30]
print(scores[0])
print(scores[-1])
print(len(scores))
Grow a list with append
scores.append(x)addsxto the end of the list.- The list can grow while the program runs.
len(scores)tells you how many items it now has.
Cresça uma lista com append
scores.append(x)adicionaxao final da lista.- A lista pode crescer enquanto o programa executa.
len(scores)diz quantos itens ela tem agora.
scores = [10, 20]
scores.append(30)
print(scores)
print(len(scores))
Traverse (visit every item)
- To traverse a list means to go through every item, one by one.
for s in scores:gives you one item each pass — this is a for-each loop.- It is the clean way to process the whole list.
Traverse (visite cada item)
- Para traverse uma lista significa passar por cada item, um por um.
for s in scores:te dá um item a cada passagem — isto é um loop for-each.- É a forma limpa de processar toda a lista.
scores = [10, 20, 30]
total = 0
for s in scores:
total = total + s
print(total)
In AP CSP pseudocode
- A list is the exam's list too — but CB lists are 1-indexed.
- So
aList[1]is the first element in CB, while Python's first isscores[0]. FOR EACH x IN listmatches Python'sfor x in list:.DISPLAY= print,←==.
Em pseudocódigo AP CSP
- Uma lista é a mesma do exame — mas as listas do CB são indexadas em 1.
- Então
aList[1]é o primeiro elemento em CB, enquanto o primeiro do Python éscores[0]. FOR EACH x IN listcorresponde aofor x in list:do Python.DISPLAY= print,←==.
aList ← [10, 20, 30]
DISPLAY aList[1] ## the FIRST item (1-indexed!)
total ← 0
FOR EACH x IN aList
{
total ← total + x
}
DISPLAY total
Common mistakes
- Index a list from
0; the last item isa[-1]. - A list groups related values under one name.
Erros comuns
- Indexe uma lista de
0; o último item éa[-1]. - Uma lista agrupa valores relacionados sob um único nome.
Now you try
- Build, grow, or traverse a list in each task.
- Press Check answer to test your code.
Agora você tenta
- Crie, cresça ou traverse uma lista em cada tarefa.
- Clique em Check answer para testar seu código.
A list of items, indexed · Uma lista de itens, indexada
A list stores many values in order, each at an index from 0. · Uma lista armazena muitos valores em ordem, cada um em um índice de 0.
Start from the list colors = ["red", "green"]. Use .append(...) to add "blue" to the end, so the list becomes ["red", "green", "blue"]. · Comece com a lista colors = ["red", "green"]. Use .append(...) para adicionar "blue" ao final, assim a lista torna-se ["red", "green", "blue"].
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
nums is [4, 8, 15, 16, 23]. Traverse it with a for loop to add up every value, then print the total. (It should print 66.) · nums é [4, 8, 15, 16, 23]. Percorra-a com um loop for para somar todos os valores, então print o total. (Deve imprimir 66.)
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
days = ["Mon", "Tue", "Wed", "Thu", "Fri"]. Store the first · primeiro day in first and the last day in last using indexing. · days = ["Mon", "Tue", "Wed", "Thu", "Fri"]. Armazene o dia inicial em first e o dia final em last usando indexação.
Click Run to see the output here. · Clique em Executar para ver a saída aqui.