Lists and data abstraction · Списки и абстракция данных
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.
Зачем нужен список?
- Программе часто нужно много значений одновременно, например, оценки класса.
- Одна переменная на каждое значение будет неудобно.
- Список хранит много значений под одним именем — это полезная абстракция данных.
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.
Что такое абстракция данных?
- Абстракция скрывает детали, чтобы вы могли думать о целом, а не о частях.
- Список позволяет обрабатывать 1 значение или 1000 значений одинаково.
- Вы пишете один и тот же код, независимо от длины списка.
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.
Создать список и прочитать его
- Запишите элементы в квадратных скобках:
[10, 20, 30]. - Получите один элемент по его индексу (позиции). Python нумерует с
0. scores[0]— первый элемент;scores[-1]— последний элемент.
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.
Увеличить список с помощью append
scores.append(x)добавляетxв конец списка.- Список может расти во время выполнения программы.
len(scores)показывает, сколько элементов он теперь содержит.
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.
Обойти (посетить каждый элемент)
- Обход списка означает прохождение через каждый элемент по очереди.
for s in scores:дает вам один элемент за каждую итерацию — это цикл for-each.- Это чистый способ обработать весь список.
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,←==.
Псевдокод в AP CSP
- Список на экзамене тоже есть — но списки CB имеют нумерацию с 1.
- Поэтому
aList[1]— это первый элемент в CB, тогда как первый в Python —scores[0]. FOR EACH x IN listсоответствует Python'sfor x in list:.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.
Распространенные ошибки
- Индексация списка начинается с
0; последний элемент имеет индексa[-1]. - Список группирует связанные значения под одним именем.
Now you try
- Build, grow, or traverse a list in each task.
- Press Check answer to test your code.
Теперь попробуйте сами
- Создавайте, увеличивайте или обходите список в каждом задании.
- Нажмите Check answer (Проверить ответ), чтобы протестировать свой код.
A list of items, indexed · Список элементов, индексируемый
A list stores many values in order, each at an index from 0. · Список хранит множество значений в порядке, каждое по индексу от 0.
Start from the list colors = ["red", "green"]. Use .append(...) to add "blue" to the end, so the list becomes ["red", "green", "blue"]. · Начните со списка colors = ["red", "green"]. Используйте .append(...), чтобы добавить "blue" в конец, так чтобы список стал равен ["red", "green", "blue"].
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
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]. Обойдите его с помощью цикла for, чтобы сложить каждое значение, затем print итоговую сумму. (Он должен напечатать 66.)
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
days = ["Mon", "Tue", "Wed", "Thu", "Fri"]. Store the first day in first and the last day in last using indexing. · Список: days = ["Mon", "Tue", "Wed", "Thu", "Fri"]. Сохраните первый день в переменную first и последний день в переменную last, используя индексирование.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.