1
Что такое массив?
2
! Массив = таблица! НОМЕР
элемента массива
(ИНДЕКС)
A массив
0 1 22 3 4
5 10 15
15 20 25
НОМЕР (ИНДЕКС)
элемента массива: 2
A[2] ЗНАЧЕНИЕ
элемента массива: 15
3
Массивы в Python: списки
A = [1, 3, 4, 23, 5]
A = [1, 3] + [4, 23] + [5]
[1, 3, 4, 23, 5]
A = [0]*10 ? Что будет?
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Создание массива из N элементов:
N = 10
A = [0]*N
4
Заполнение массива
Как список:
print ( A ) [1, 2, 3, 4, 5]
В строчку через пробел:
for i in range(N):
print ( A[i], end = " " ) 1 2 3 4 5
пробел после
или так: вывода очередного
for x in A: числа
1 2 3 4 5
print ( x, end = "
или " )
так:
print ( *A ) print (1, 2, 3, 4, 5)
разбить список
9 на элементы
Ввод массива с клавиатуры
Создание массива:
N = 10
A = [0]*N
Ввод по одному элементу в строке:
for i in range(N):
A[i] = int( input() )
или кратко:
A = [int(input())
for i in range(N)]
10
Ввод массива с клавиатуры
Ввод всех чисел в одной строке:
data = input() # "1 2 3 4 5"
s = data.split() # ["1","2","3","4","5"]
int(x) for x in s ]
A = [ int(x)
# [1,2,3,4,5]
или так:
A = [int(x) for x in input().split()]
11
Как обработать все элементы массива?
Создание массива:
N=5
A = [0]*N
Обработка:
# обработать A[0]
# обработать A[1]
# обработать A[2]
# обработать A[3]
# обработать A[4]
13
Перебор элементов
Общая схема (можно изменять A[i]):
for i in range(N):
... # сделать что-то с A[i]
for i in range(N):
A[i] += 1
A = [2, 3, 1, 4, 6, 5]
print( A[3] ) # 4
print( A[0]+2*A[5] ) # 12
A[2] = A[1]*A[4] # 18
print( 2*A[1]+A[2] ) # 24
for k in range(6):
A[k] += 2 # [4,5,3,6,8,7]
print( 2*A[3]+3*A[4] ) # 36
15
Подсчёт нужных элементов
Задача. В массиве записаны данные о росте баскетболистов.
Сколько из них имеет рост больше
180 см, но меньше 190 см?
? Как решать?
count = 0
for x in A:
if 180 < x and x < 190:
count += 1
16
Перебор элементов
сумма массива B
17
Как работает цикл?
summa = 0
for x in A:
if x % 2 == 0:
summa += x
A 4 3 6 8 1
x 1
8
6
3
4
summa 18
10
4
0
18
Среднее арифметическое
Задача. Найти среднее арифметическое элементов массива,
которые оканчиваются на цифру 5.
count = 0
summa = 0
? Как определить, что
оканчивается на 5?
for x in A:
if x % 10 == 5:
count += 1
среднее
summa += x
арифметическое
print ( summa/count )
или так: отбираем нужные
B = [ x for x in A ]
if x % 10 == 5]
print ( sum(B)/len(B) )
19
Поиск в массиве
Найти элемент, равный X:
i=0
while A[i] != X:
i += 1
?Что плохо?
i=0
while i < N and A[i] != X:
i += 1
if i < N: ? Что если такого нет?
print ( "A[", i, "]=", X, sep = "" )
else:
print ( "Не нашли!" )
20
Поиск в массиве
Вариант с досрочным выходом:
номер найденного
элемента
nX = -1
for i in range ( N ):
if A[i] == X:
nX = i досрочный
break выход из цикла
if nX >= 0:
print ( "A[", nX, "]=", X, sep = "" )
else:
print ( "Не нашли!" )
21
Максимальный элемент
M = A[0]
for i in range(1,N):
if A[i] > M:
M = A[i] ?
Если range(N)?
print ( M )
Варианты в стиле Python:
M = A[0]
for x in A:
if x > M: ? Как найти его номер?
M=x
M = max ( A )
23
Максимальный элемент и его номер
M = A[0]; nMax = 0
for i in range(1,N):
if A[i] > M:
M = A[i] ?
Что можно улучшить?
nMax = i
print ( "A[", nMax, "]=", M, sep = "" )
nMax = 0
for i in range(1,N):
if A[i] > A[nMax]
A[nMax]:
nMax = i
print ( "A[", nMax, "]=", A[nMax]
A[nMax], sep = "" )
24
Максимальный элемент и его номер
Вариант в стиле Python:
M = max(A)
nMax = A.index(M)
print ( "A[", nMax, "]=", M, sep = "" )
номер заданного
элемента (первого из…)
25
26
Массивы в Python
27
Что такое массив?
28
! Массив = таблица! НОМЕР
элемента массива
(ИНДЕКС)
A массив
0 1 22 3 4
5 10 15
15 20 25
НОМЕР (ИНДЕКС)
элемента массива: 2
A[2] ЗНАЧЕНИЕ
элемента массива: 15
29
Создание и заполнение
30
Добавление элемента
from array import *
data = array('i', [2, 5, 4, 0, 8])
data.insert(4, 3)
Первое (4) отвечает за индекс нового элемента в массиве, то есть
место, куда его следует поместить, а второе (3) представляет собой
само значение.
Удаление элемента
В Python удалить ненужные элементы из массива можно при помощи
метода pop, аргументом которого является индекс ячейки (3).
from array import *
data = array('i', [2, 5, 4, 0, 8])
data.pop(3)
31
Кортежи в Python
32
Кортежем или tuple называется неизменяемый список. Создается он
следующим образом:
A=tuple() # пустой кортеж
B=() #пустой кортеж
C=(12,13) # кортеж из элементов (12, 13)
Кортеж не поддерживает операции добавления, сортировки, вставки,
удаления, расширения. Среди поддерживаемых операций - конкатенация
A=() # пустой кортеж
A=A+(1,) #A=(1,)
В отличие от списка, где новый элемент просто добавляется в конец,
происходит создание нового объекта.
A=() # пустой список
B=A # список B и список A указывают на один и тот же объект
33
Словари в Python
34
Словарь– набор объектов, каждый из которых является
парой вида ключ : значение. Ключи используются для
доступа к значениям элементов словаря так же, как
индексы для доступа к элементам списка.
35
36
Обращение к элементу словаря в Python
d1 = {"Russia":"Moscow", "USA":"Washington"}
d1["China"]="Beijing"
print(d1) {'Russia': 'Moscow', 'China': 'Beijing',
'USA': 'Washington'}
37
Для удаления элемента из словаря можно воспользоваться
командой del.
d2 = {"A1":"123", "A2":"456"}
del d2["A1"]
print(d2)
{'A2': '456'}
d2 = {"A1":"123", "A2":"456"}
"A1" in d2
True
"A3" in d2
False
38
clear()
Удаляет все элементы словаря.
Методы словарей
d2 = {"A1":"123", "A2":"456"}
print(d2)
{'A2': '456', 'A1': '123'}
d2.clear()
print(d2)
{}
copy()
Создается новая копия словаря.
d2 = {"A1":"123", "A2":"456"}
d3 = d2.copy()
print(d3)
{'A1': '123', 'A2': '456'}
d3["A1"]="789”
print(d2)
{'A2': '456', 'A1': '123‘}
print(d3)
{'A1': '789', 'A2': '456'}
39
get(key)
Возвращает значение из словаря по ключу key.
d = {"A1":"123", "A2":"456«}
d.get("A1")
'123'
items()
Возвращает элементы словаря (ключ, значение) в
отформатированном виде.
d = {"A1":"123", "A2":"456"}
d.items()
dict_items([('A2', '456'), ('A1', '123')])
40
Объединение словарей
В том случае, если возникла необходимость в перемещении данных из
одного словаря в другой, стоит воспользоваться функцией объединения
update. Вызвать ее нужно на объекте, который предполагается расширить
новыми парами ключей и значений. Вот пример как в Python добавить в
словарь словарь:
Получение размера
a = {1: "one", 2: "two", 3: "three"}
print(len(a))
3
41
Сортировка
Сортировка осуществляется за счет импортированного модуля operator и
встроенного метода itemgetter, получающего 0 или 1.
import operator
a = {2 : "two", 3 : "three", 1 : "one"}
b = sorted(a.items(), key = operator.itemgetter(0))
print(b)
b = sorted(a.items(), key = operator.itemgetter(1))
print(b)
42
Сравнение
43
Генератор словарей
44
Спасибо за внимание
45