Презентация на тему: Массивы в Python

Массивы в Python
Что такое массив?
Массивы и коллекции Python
Встроенные массивы и коллекции
Списки
Работа со списками
Множества
Работа с множествами
Словари
Работа со словарями
Кортежи
Импортируемые массивы и коллекции
Deque (очередь с двумя концами)
Работа с Deque
Array (массив)
Работа с массивами
Итераторы
Итераторы
Итераторы
Модуль itertools
Общие методы большинства коллекций
Вывод массива по элементам
Примеры решения задач: Камень, ножницы, бумага
Примеры решения задач: Репка
Примеры решения задач: Репка
Примеры решения задач: Список покупок
Примеры решения задач: Колода карт
Примеры решения задач: Колода карт
Задачи
“Не бином Ньютона”
Автоматическое объявление
Буква каждого слова
Камень, ножницы, бумага: продолжение
1/33
Средняя оценка: 4.6/5 (всего оценок: 99)
Код скопирован в буфер обмена
Скачать (1088 Кб)
1

Первый слайд презентации: Массивы в Python

set, dict, list, deque и многие другие Лекторы: Шарипов Камиль Рамилевич (120П) Сабирзянов Инсаф Нуриманович (120П)

Изображение слайда
2

Слайд 2: Что такое массив?

Массив – это структура данных, хранящая в себе набор значений (элементов). Массивы в языке Python несколько отличны от массивов в других языках программирования и имеют свои особенности, о которых и будет сказано далее.

Изображение слайда
3

Слайд 3: Массивы и коллекции Python

Встроенные Импортируемые Итераторы

Изображение слайда
4

Слайд 4: Встроенные массивы и коллекции

К встроенным массивам в Python можно отнести: Списки (list) Множества (set) Словари (dict) Кортежи (tuple)

Изображение слайда
5

Слайд 5: Списки

Списки - это тип данных, хранящих в себе последовательность значений любого типа: строки, числа, числа с плавающей запятой или смешанного типа. Создание списка: a = [] a = list() a = [i for i in range(x)] или [input() for i in range(x)]

Изображение слайда
6

Слайд 6: Работа со списками

a.append(x) - добавляет элемент x в конец списка a a1 + a2 - сумма списков - [1, 2] + [3, 4] = [1, 2, 3, 4] a.pop(n) - удаляет и возвращает n-ный элемент из списка a a * k - повторяет список a k раз - [1, 2] * 2 = [1, 2, 1, 2] a[n] - n-ный элемент списка a a.sort() - сортировка элементов списка по возрастанию a.reverse() - изменяет порядок элементов на обратный a.count(x) - количество элементов x в списке a Если в выражении a[n] n < 0, то значения будут браться с конца списка. То есть a[-1] вернет последний элемент списка, a[-2] предпоследний и т.д.

Изображение слайда
7

Слайд 7: Множества

Как и списки, множества могут хранить в себе элементы любого типа. Главной особенностью этого контейнера является то, что он НЕ ПОВТОРЯЮЩИЕСЯ элементы в СЛУЧАЙНОМ ПОРЯДКЕ. Создание множества: s = set() s = {1, 2, 3, ‘Hello’, ‘World’} (почему нельзя создать множество аналогично списку (скобками) будет разъяснено далее)

Изображение слайда
8

Слайд 8: Работа с множествами

s.add(x) - Добавить элемент x в множество s s.clear() - Удаление всех элементов множества s s1 <= s2 - Все ли элементы s1 принадлежат s2 s1 | s2 - Объединение двух множеств s1 & s2 - Пересечение двух множеств s1 - s2 - Множество элементов s1, не принадлежащих s2 s1 ^ s2 - Множество элементов, встречающиеся в одном из множеств, но не сразу в обоих

Изображение слайда
9

Слайд 9: Словари

Словарь (хеш-таблицы) - коллекция произвольных объектов с доступом по ключу. Создание словаря: d = dict() d = {} d = dict.fromkeys(list, value)

Изображение слайда
10

Слайд 10: Работа со словарями

d[key] = value - создание значения value по ключу key d.clear() - Очистка словаря d.keys() - возвращает все ключи словаря d.items() - возвращает пары (ключ, значение) d.values() - возвращает значения словаря d.get(key, default) - возвращает значение ключа, однако если такого ключа нет - возвращает значение default

Изображение слайда
11

Слайд 11: Кортежи

Кортеж - это неизменяемый список. Создание кортежа: t = (1, 2, 3) t = tuple() Стоит заметить, что кортеж из одного элемента выглядит следующим образом: t = (1, ) t[n] - получение n-ого элемента кортежа

Изображение слайда
12

Слайд 12: Импортируемые массивы и коллекции

К таковым относятся: deque (из модуля collections) array (из модуля array) Кроме перечисленных есть и многие другие, если интересно - почитайте про модули collections, array, itertools подробнее в интернете.

Изображение слайда
13

Слайд 13: Deque (очередь с двумя концами)

Очень похожи на списки, но добавлять и удалять элементы можно либо справа, либо слева. Для работы с deque, необходимо импортировать модуль collections Создание - collections.deque(iterable)

Изображение слайда
14

Слайд 14: Работа с Deque

d.append(x) - добавляет x в конец d.appendleft(x) - добавляет x в начало d.pop() - удаляет последний элемент d.popleft() - удаляет первый элемент d.extend() - добавляет в конец все элементы iterable d.extendleft() - добавляет в начало все элементы iterable d.reverse() - разворачивает очередь

Изображение слайда
15

Слайд 15: Array (массив)

Array - привычный массив программиста, принимающий только один тип данных, указанный при его создании. Для создания массива необходимо добавить в свою программу одноименную библиотеку array. Создание массива: a = array.array(Type, iterable) - Type - тип данных (‘f’ - float, ‘i’ - int)

Изображение слайда
16

Слайд 16: Работа с массивами

Методы массивов во многом схожи в методами обычных списков (list()) a.insert(n, x) - вставляет в позицию n элемент x a.remove(x) - удалить первое вхождение элемента x в a Из отличных методов: a.tolist() - преобразование массива в список

Изображение слайда
17

Слайд 17: Итераторы

До этого момента при описании методов некоторых массивов и коллекций вы могли встретить слово iterable. Итерируемый объект (или iterable) - это объект, способный возвращать элементы по одному, а также объект, из которого можно получить итератор. Чтобы получить итератор из элемента, можно воспользоваться функцией iter(iterable).

Изображение слайда
18

Слайд 18: Итераторы

Итератор - специальный объект, который позволяет поочередно перебирать элементы. Его можно представить как стрелочку, которая указывает на элемент коллекции и постепенно двигается по ней. Особенность итераторов заключается в том, что при выводе их через print() вы не получите на экране все его значения, а лишь строку, говорящую о типе этого итератора.

Изображение слайда
19

Слайд 19: Итераторы

Также после использования (чтения) элементы итератора навсегда забываются и пропадают. Если вывести итератор на экран через print() и поставить перед именем его переменной звездочку (*), то он появится в консоли в виде строки и его значения также пропадут. Следствием этого является то, что они не имеют фиксированной длины и к их элементам нельзя обращаться по индексам О встроенных итераторах подробнее вы узнаете из выступления Котдусова Булата и Васильева Романа.

Изображение слайда
20

Слайд 20: Модуль itertools

Если импортировать его в вашу программу, то вы сможете использовать 18 функций этого модуля. Наиболее полезные из них: itertools.combinations(iterable, [r]) - все комбинации элементов длиной r из iterable itertools.product(iterable1, iterable2) - все комбинации элементов iterable1 с элементами iterable2

Изображение слайда
21

Слайд 21: Общие методы большинства коллекций

len(a) - возвращает длину массива a (ВАЖНО: не работает с итераторами) max(a) - возвращает максимальный элемент массива с числами min(a) - возвращает минимальный элемент массива с числами sum(a) - возвращает сумму элементов массива с числами x in a - проверка наличия элемента x в коллекции a (ВАЖНО: не работает с итераторами) bool(a) - True, если массив непустой, иначе - False

Изображение слайда
22

Слайд 22: Вывод массива по элементам

Вывести массив по элементам можно осуществить с помощью цикла for. Синтаксис: for elem in iterable: for i in range (len(iterable)): print(elem) print(iterable[i]) Можно вывести все элементы массива в функции print, если перед его именем поставить звездочку: print(* iterable )

Изображение слайда
23

Слайд 23: Примеры решения задач: Камень, ножницы, бумага

Всем известная игра, пользователь вводит в двух строках один из трех элементов игры - камень, ножницы или бумагу, программа выводит победителя winnings = {'ножницы': ['бумага'], 'камень': ['ножницы'], 'бумага': ['камень']} a, b = input(), input() if a == b: print('ничья') else: if b in winnings[a]: print('первый') else: print('второй')

Изображение слайда
24

Слайд 24: Примеры решения задач: Репка

В первой строке задаётся актуальный на данный момент порядок выхода персонажей на сцену в виде перечисления их имён через пробел. Во второй строке записывается количество запросов. Каждая следующая строка представляет собой имя персонажа, которому требуется подсказка. Все запросы корректны. Ответ персонажу должен содержать имя того, после кого ему выходить, его собственное имя и имя следующего за ним. Имена разделяются стрелочками, как и во входных данных. Если персонаж выходит первым или последним, для него указывается только один сосед.

Изображение слайда
25

Слайд 25: Примеры решения задач: Репка

a = input().split() for i in range(int(input())): b = a.index(input()) if b == 0: print(f'{a[b]} -> {a[b + 1]}') elif b == len(a) - 1: print(f'{a[b - 1]} -> {a[b]}') else: print(f'{a[b - 1]} -> {a[b]} -> {a[b + 1]}') Ввод: Репка Дед Бабка Внучка Жучка Кошка Мышка 3 Репка Мышка Бабка Вывод: Репка -> Дед Кошка -> Мышка Дед -> Бабка -> Внучка

Изображение слайда
26

Слайд 26: Примеры решения задач: Список покупок

Вы собираетесь в магазин и записываете, что нужно купить. Напишите программу, которая считывает сначала количество покупок, потом по очереди сами эти покупки, затем выводит их же в том же порядке. a = list() n = int(input()) c = 0 for i in range(n): text = input() a.append(text) while c < len(a): print(a[c]) с += 1 Питонисты молчат!!! (кара - минус 3 балла) Как можно упростить вывод списка в этой программе? За правильный ответ +0.5 балла к последующей работе

Изображение слайда
27

Слайд 27: Примеры решения задач: Колода карт

Даны 2 списка: a1 = [“6”, “7”, “8”, “9”, “10”, “Валет”, “Дама”, “Король”, “Туз”] a2 = [“Треф”, “Пики”, “Черви”, “Буби”] Вывести на экран названия всех возможных карт.

Изображение слайда
28

Слайд 28: Примеры решения задач: Колода карт

from itertools import product a1 = [“6”, “7”, “8”, “9”, “10”, “Валет”, “Дама”, “Король”, “Туз”] a2 = [“Треф”, “Пики”, “Черви”, “Бубны”] for card in product(a1, a2): print(*card)

Изображение слайда
29

Слайд 29: Задачи

Оценки по баллам: 2 - Меньше 4 баллов 3 - от 4 до 5 баллов 4 - от 6 до 7 баллов 5 - от 8 до 10 баллов Первым трём решившим НЕ ПИТОНИСТАМ +0.5 балла к общей сумме.

Изображение слайда
30

Слайд 30: Не бином Ньютона”

Имеется конечная последовательность чисел. Найдите попарные суммы её соседних членов. Дополнительно: найдите суммы всех возможных пар чисел Формат ввода На первой строке записано количество членов исходной последовательности. Затем идут целые числа — члены последовательности. Формат вывода Целые числа — попарные суммы соседних членов (всех пар) последовательности. За решение дается 2.5 балла, 3.5 за решение с пунктом “дополнительно”

Изображение слайда
31

Слайд 31: Автоматическое объявление

Напишите программу, которая делает автоматические объявления в крупном магазине. Объявление собирается из заранее записанных частей. На первой строке вводится натуральное число — количество записанных частей объявлений. Далее следуют строки — части объявлений. Затем идёт количество частей, из которых будет состоять объявление, которое нужно сделать. Затем на отдельных строках следуют натуральные числа — номера этих частей (нумерация начинается с 1). За решение дается 2.5 балла

Изображение слайда
32

Слайд 32: Буква каждого слова

Напишите программу, которая выводит букву с заданным номером из каждой введённой строки. Если некоторые строки слишком короткие, и в них нет символа с заданным номером, то такие строки при выводе нужно просто пропускать. Небольшая подсказка: Из строк можно брать элементы, как и из списка т.е. a = “Python” print(a[2]) -- выведет t Также буквы выводить следует в одну строку, используя параметр end у print За решение дается 2.5 балла б ри

Изображение слайда
33

Последний слайд презентации: Массивы в Python: Камень, ножницы, бумага: продолжение

Улучшите код программы “Камень, ножницы, бумага” из примера по следующей схеме За решение дается 2.5 балла

Изображение слайда