Презентация - "Презентация - Python - Коллекции"
- Презентации / Другие презентации
- 0
- 17.10.24
Просмотреть и скачать презентацию на тему "Презентация - Python - Коллекции"
Списки
Большинство программ работает не с отдельными переменными, а с набором переменных. Например, программа может обрабатывать информацию об учащихся класса, считывая список учащихся с клавиатуры или из файла, при этом изменение количества учащихся в классе не должно требовать модификации исходного кода программы.
Для хранения таких данных можно использовать структуру данных, называемую в Питоне список (в большинстве же языков программирования используется другой термин “массив”). Список представляет собой последовательность элементов, пронумерованных от 0, как символы в строке.
numbers = [2, 3, 5, 7, 11, 13]
colors = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
Списки
color = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
print(color[0])
color[0] = 'красный'
print('Выведем все цвета')
for i in range(len(color)):
print(color[i])
Списки
Создания и считывание списков.
Прежде всего, можно создать пустой список (не содержащий элементов, длины 0), а в конец списка можно добавлять элементы при помощи метода append.
a = [] # заводим пустой список
n = int(input()) # считываем количество элемент в списке
for i in range(n):
new_element = int(input()) # считываем очередной элемент
a.append(new_element) # добавляем его в список
# последние две строки можно было заменить одной:
# a.append(int(input()))
print(a)
Списки. Методы split и join.
Элементы списка могут вводиться по одному в строке, в этом случае строку целиком можно считать функцией input(). После этого можно использовать метод строки split(), возвращающий список строк, которые получатся, если исходную строку разрезать на части по пробелам.
# на вход подаётся строка
# 1 2 3
s = input() # s == '1 2 3'
a = s.split() # a == ['1', '2', '3']
Списки. Методы split и join.
У метода split() есть необязательный параметр, который определяет, какая строка будет использоваться в качестве разделителя между элементами списка. Например, вызов метода split('.') вернет список, полученный разрезанием исходной строки по символам '.':
a = '192.168.0.1'.split('.')
Списки. Методы split и join.
В Питоне можно вывести список строк при помощи однострочной команды. Для этого используется метод строки join. У этого метода один параметр: список строк. В результате возвращается строка, полученная соединением элементов переданного списка в одну строку, при этом между элементами списка вставляется разделитель, равный той строке, к которой применяется метод.
a = ['red', 'green', 'blue']
print(' '.join(a))
# вернёт red green blue
print(''.join(a))
# вернёт redgreenblue
print('***'.join(a))
# вернёт red***green***blue
Списки. Срезы
Операции со списками
x in AПроверить, содержится ли элемент в списке. Возвращает True или False
x not in AТо же самое, что not(x in A)
min(A)Наименьший элемент списка
max(A)Наибольший элемент списка
A.index(x)Индекс первого вхождения элемента x в список, при его отсутствии генерирует исключение ValueError
A.count(x)Количество вхождений элемента x в список
Множества
Множество задается перечислением всех его элементов в фигурных скобках. Исключением является пустое множество, которое можно создать при помощи функции set(). Если функции set передать в качестве параметра список, строку или кортеж, то она вернёт множество, составленное из элементов списка, строки, кортежа. Например:
A = {1, 2, 3}
A = set('qwerty')
print(A)
выведет {'e', 'q', 'r', 't', 'w', 'y'}
Множества
Каждый элемент может входить в множество только один раз, порядок задания элементов не важен. Например, программа:
A = {1, 2, 3}
B = {3, 2, 3, 1}
print(A == B)
выведет True, так как A и B — равные множества.
Множества. Операции с множествами
С множествами в питоне можно выполнять обычные для математики операции над множествами.
Множества. Операции с множествами
С множествами в питоне можно выполнять обычные для математики операции над множествами.
Словари
Обычные списки (массивы) представляют собой набор пронумерованных элементов, то есть для обращения к какому-либо элементу списка необходимо указать его номер. Номер элемента в списке однозначно идентифицирует сам элемент. Но идентифицировать данные по числовым номерам не всегда оказывается удобно.
Структура данных, позволяющая идентифицировать ее элементы не по числовому индексу, а по произвольному, называется словарем или ассоциативным массивом. Соответствующая структура данных в языке Питон называется dict.
Словари
# Создадим пустой словарь Capitals
Capitals = dict()
# Заполним его несколькими значениями
Capitals['Russia'] = 'Moscow'
Capitals['Ukraine'] = 'Kiev'
Capitals['USA'] = 'Washington'
Countries = ['Russia', 'France', 'USA', 'Russia']
for country in Countries:
# Для каждой страны из списка проверим, есть ли она в словаре Capitals
if country in Capitals:
print('Столица страны ' + country + ': ' + Capitals[country])
else:
print('В базе нет страны c названием ' + country)
Словари
Итак, каждый элемент словаря состоит из двух объектов: ключа и значения. В нашем примере ключом является название страны, значением является название столицы. Ключ идентифицирует элемент словаря, значение является данными, которые соответствуют данному ключу. Значения ключей — уникальны, двух одинаковых ключей в словаре быть не может.
В жизни широко распространены словари, например, привычные бумажные словари (толковые, орфографические, лингвистические). В них ключом является слово-заголовок статьи, а значением — сама статья. Для того, чтобы получить доступ к статье, необходимо указать слово-ключ.
Другой пример словаря, как структуры данных — телефонный справочник. В нем ключом является имя, а значением — номер телефона. И словарь, и телефонный справочник хранятся так, что легко найти элемент словаря по известному ключу (например, если записи хранятся в алфавитном порядке ключей, то легко можно найти известный ключ, например, бинарным поиском), но если ключ неизвестен, а известно лишь значение, то поиск элемента с данным значением может потребовать последовательного просмотра всех элементов словаря.
Словари
Когда нужно использовать словари
Подсчет числа каких-то объектов. В этом случае нужно завести словарь, в котором ключами являются объекты, а значениями — их количество.
Хранение каких-либо данных, связанных с объектом. Ключи — объекты, значения — связанные с ними данные. Например, если нужно по названию месяца определить его порядковый номер, то это можно сделать при помощи словаря Num['January'] = 1; Num['February'] = 2; ....
Установка соответствия между объектами (например, “родитель—потомок”). Ключ — объект, значение — соответствующий ему объект.
Если нужен обычный массив, но максимальное значение индекса элемента очень велико, и при этом будут использоваться не все возможные индексы (так называемый “разреженный массив”), то можно использовать ассоциативный массив для экономии памяти.
Словари
Создание словаря
Пустой словарь можно создать при помощи функции dict() или пустой пары фигурных скобок {} (вот почему фигурные скобки нельзя использовать для создания пустого множества). Для создания словаря с некоторым набором начальных значений можно использовать следующие конструкции:
capitals = {'Russia': 'Moscow', 'Ukraine': 'Kiev', 'USA': 'Washington'}
capitals = dict(Russia = 'Moscow', Ukraine = 'Kiev', USA = 'Washington')
capitals = dict([("Russia", "Moscow"), ("Ukraine", "Kiev"), ("USA", "Washington")])
print(capitals)
Задача №1
Выведите все элементы списка с четными индексами (то есть A[0], A[2], A[4], ...).
Входные данные:Выходные данные:
1 2 3 4 51 3 5
Решение
a = input().split()
for i in range(0, len(a), 2):
print(a[i])
или
a = input().split()
print (' '.join(a[::2]))
Задача №2
Выведите все четные элементы списка. При этом используйте цикл for, перебирающий элементы списка, а не их индексы!
Входные данные:Выходные данные:
1 2 2 3 3 3 42 2 4
Решение
numbers = input().split()
for number in numbers:
if int(number) % 2 == 0:
print(number, end=' ')
Задача №3
Дан список чисел. Определите, сколько в нем встречается различных чисел.
Примечание. Эту задачу на Питоне можно решить в одну строчку.
Входные данные:Выходные данные:
1 2 3 2 13
Задача №4
Во входной строке записана последовательность чисел через пробел. Для каждого числа выведите слово YES (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось.
Входные данные:Выходные данные:
1 2 3 2 3 4NO
NO
NO
YES
YES
NO