ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 315
Скачиваний: 8
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования Российской ФедерацииНегосударственное образовательное частное учреждение высшего образования «Московский финансово-промышленный университет «Синергия»Кафедра Информационного менеджмента и информационно-коммуникационных технологий имени профессора В.В. ДикаТема «Функции, модули и пакеты». Лабораторный практикум №5«Работа со списками. Операции над списками в Python»По дисциплине «Программирование на языке Python»
Москва 2023Лабораторный практикум №5«Работа со списками. Операции над списками в Python»Цель работы: сформировать навыки работы со списками на языке Python, в том числе навыки работы с одномерными массивами; научиться использовать генераторы списков при программировании различных практических задачЗадачи: Овладеть навыками составления линейных алгоритмов на языке программирования Python с использованием списков;Применять функции и методы списков при обработке последовательностей;Знать операции и методы обработки списков.Ход работы:
Теоретический материалtk.ulstu.ru/video.php#video #13. Списки - операторы и функции работы с ними #14. Срезы списков и сравнение списков #15. Основные методы списков #16. Вложенные списки, многомерные списки
split().Используя функцию split в Python можно получить из строки список. stroka ="Привет, страна" lst=stroka.split(",")Результат:3. Генераторы списков. В Python создать список можно также при помощи генераторов. Первый способ. Сложение одинаковых списков заменяется умножением: Список из 10 элементов, заполненный единицамиl = [1]*10 Второй способ. List comprehension — это упрощенный подход к созданию списка, который задействует цикл for, а также инструкции if-else для определения того, что в итоге окажется в финальном списке.У list comprehension есть три основных преимущества.
>>> matrix = [[x for x in range(1, 4)] for y in range(1, 4)]>>> print(matrix)[[1, 2, 3], [1, 2, 3], [1, 2, 3]]Может показаться, что здесь все стало чуть сложнее. Но достаточно разбить код на несколько строк, чтобы увидеть, что нет ничего особенного.matrix = [[x for x in range(1, 4)]for y in range(1, 4)]print(matrix)Последнийпример. Создадим список дней рождения из списка словарей. Для этого используем знакомые тактики.people = [{"first_name": "Василий","last_name": "Марков","birthday": "9/25/1984"}, {"first_name": "Регина","last_name": "Павленко","birthday": "8/21/1995"}]birthdays = [person[term]for person in peoplefor term in personif term == "birthday"]print(birthdays)[‘9/25/1984’, ‘8/21/1995’]В этом примере сперва перебираем people, присваивая каждый словарь person. После этого перебираем каждый идентификатор в словаре, присваивая ключиterm. Если значение term равно birthday, то значение person[term] добавляет в list comprehension.Примеры использования генераторов списка. Пример 1. Заполнить список квадратами чисел от 0 до 9, используя генератор списка. Решение:l = [i*i for i in range(10)] Пример 2.Заполнить список числами, где каждое последующее число больше на 2. l = [(i+1)+i for i in range(10)] print(l)Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности. random.randint(A, B) - случайное целое число N, A ≤ N ≤ B. random.random() - случайное число от 0 до 1. Случайные числа в списке: 10 чисел, сгенерированных случайным образом в диапазоне (10,80) from random import randint l = [randint(10,80) for x in range(10)] 10 чисел, сгенерированных случайным образом в диапазоне (0,1) l = [random() for i in range(10)]4. Ввод списка (массива) в языке Python. Для ввода элементов списка используется цикл for и команда range (): for i in range(N): x[i] = int( input() ) Более простой вариант ввода списка: x = [ int(input()) for i in range(N) ]
Функция int здесь используется для того, чтобы строка, введенная пользователем, преобразовывалась в целые числа.5. Вывод списка (массива) в языке Python. Вывод целого списка (массива): print (L) Поэлементный вывод списка (массива): for i in range(N): print ( L[i], end = " " )Методы списков.Программа, демонстрирующая методы работы списков.Пример программы на PythonРезультат выполнения программыВариант 01. Из массива X длиной n, среди элементов которого есть положительные, отрицательные и равные нулю, сформировать новый массив Y, взяв в него только те элементы из X, которые больше по модулю заданного числа M. Вывести на экран число M, данный и полученные массивы.Решение:2. В массиве целых чисел все отрицательные элементы заменить на положительные. Вывести исходный массив и полученный. Решение:Задания на лабораторную работу №5 (по вариантам)Написать программы в среде IDLE в соответствии с номером своего варианта.
| Направление подготовки: | 09.03.02 Информационные системы и технологии |
| Профиль подготовки: | Разработка, сопровождение и обеспечение безопасности информационных систем |
| Квалификация выпускника: | Бакалавр |
| Форма обучения: | очная |
-
Ознакомиться (прочитать) теоретический материал. -
Изучить Требования к защите отчетной документации/ Защита результатов выполнения лабораторных работ -
Выполнение заданий лабораторной работы/составление отчета по лабораторной работе. -
Ответы на контрольные вопросы, выводы по проделанной работе. -
Защита отчета по лабораторному практикуму
Теоретический материалtk.ulstu.ru/video.php#video #13. Списки - операторы и функции работы с ними #14. Срезы списков и сравнение списков #15. Основные методы списков #16. Вложенные списки, многомерные списки
-
#27. Генераторы списков (List comprehensions) -
#28. Вложенные генераторы списков
split().Используя функцию split в Python можно получить из строки список. stroka ="Привет, страна" lst=stroka.split(",")Результат:3. Генераторы списков. В Python создать список можно также при помощи генераторов. Первый способ. Сложение одинаковых списков заменяется умножением: Список из 10 элементов, заполненный единицамиl = [1]*10 Второй способ. List comprehension — это упрощенный подход к созданию списка, который задействует цикл for, а также инструкции if-else для определения того, что в итоге окажется в финальном списке.У list comprehension есть три основных преимущества.
-
Простота. List comprehension позволяют избавиться от циклов for, а также делают код более понятным. -
Скорость. List comprehension быстрее for-циклов, которые он и заменяет. -
Принципы функционального программирования. Поскольку list comprehensions создают новый список, не меняя существующий, их можно отнести к функциональному программированию.
>>> matrix = [[x for x in range(1, 4)] for y in range(1, 4)]>>> print(matrix)[[1, 2, 3], [1, 2, 3], [1, 2, 3]]Может показаться, что здесь все стало чуть сложнее. Но достаточно разбить код на несколько строк, чтобы увидеть, что нет ничего особенного.matrix = [[x for x in range(1, 4)]for y in range(1, 4)]print(matrix)Последнийпример. Создадим список дней рождения из списка словарей. Для этого используем знакомые тактики.people = [{"first_name": "Василий","last_name": "Марков","birthday": "9/25/1984"}, {"first_name": "Регина","last_name": "Павленко","birthday": "8/21/1995"}]birthdays = [person[term]for person in peoplefor term in personif term == "birthday"]print(birthdays)[‘9/25/1984’, ‘8/21/1995’]В этом примере сперва перебираем people, присваивая каждый словарь person. После этого перебираем каждый идентификатор в словаре, присваивая ключиterm. Если значение term равно birthday, то значение person[term] добавляет в list comprehension.Примеры использования генераторов списка. Пример 1. Заполнить список квадратами чисел от 0 до 9, используя генератор списка. Решение:l = [i*i for i in range(10)] Пример 2.Заполнить список числами, где каждое последующее число больше на 2. l = [(i+1)+i for i in range(10)] print(l)Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности. random.randint(A, B) - случайное целое число N, A ≤ N ≤ B. random.random() - случайное число от 0 до 1. Случайные числа в списке: 10 чисел, сгенерированных случайным образом в диапазоне (10,80) from random import randint l = [randint(10,80) for x in range(10)] 10 чисел, сгенерированных случайным образом в диапазоне (0,1) l = [random() for i in range(10)]4. Ввод списка (массива) в языке Python. Для ввода элементов списка используется цикл for и команда range (): for i in range(N): x[i] = int( input() ) Более простой вариант ввода списка: x = [ int(input()) for i in range(N) ]
Функция int здесь используется для того, чтобы строка, введенная пользователем, преобразовывалась в целые числа.5. Вывод списка (массива) в языке Python. Вывод целого списка (массива): print (L) Поэлементный вывод списка (массива): for i in range(N): print ( L[i], end = " " )Методы списков.Программа, демонстрирующая методы работы списков.Пример программы на PythonРезультат выполнения программыВариант 01. Из массива X длиной n, среди элементов которого есть положительные, отрицательные и равные нулю, сформировать новый массив Y, взяв в него только те элементы из X, которые больше по модулю заданного числа M. Вывести на экран число M, данный и полученные массивы.Решение:2. В массиве целых чисел все отрицательные элементы заменить на положительные. Вывести исходный массив и полученный. Решение:Задания на лабораторную работу №5 (по вариантам)Написать программы в среде IDLE в соответствии с номером своего варианта.
| Номер варианта | Задание №1 | Задание №2 | Задание №3 |
| | Работа с одномерным массивом | Работа со списками | Генераторы списков (List comprehensions) |
| 1 | Дан одномерный массив, состоящий из N вещественных элементов. Ввести массив с клавиатуры. Найти и вывести минимальный по модулю элемент. Вывести массив на экран в обратном порядке. | Вводится список по четырем смартфонам в формате: название_1:цена_1 … название_4:цена_4 Здесь цена – это вещественное число. Преобразовать эту информацию в список вида: [['название_1', цена_1], ['название_2', цена_2], ...] Результат (список) вывести на экран. | Вводятся вещественные числа в строку через пробел. Необходимо на их основе сформировать список с помощью list comprehension (генератора списков) из чисел, противоположных введенным числам (в списке должны храниться именно числа, а не строки). Результат вывести на экран. |
| 2 | Дан массив целых чисел. Найти сумму элементов с четными номерами и произведение элементов с нечетными номерами. Вывести сумму и произведение. | Вводится список из четырех предметов в формате: название_1=вес_1 название_2=вес_2 название_3=вес_3 название_4=вес_4 Необходимо преобразовать введенные данные в двумерный список вида: [['название_1', вес_1], ['название_2', вес_2], ...] Вес – это целое число. Результат (список) вывести на экран. | Вводятся названия городов в строку через пробел. Необходимо сформировать список с помощью list comprehension, содержащий названия городов длиной более пяти символов. Результат вывести на экран. |
| 3 | Дан одномерный массив из 10 целых чисел. Найти максимальный элемент и сравнить с ним остальные элементы. Вывести количество меньших максимального и больших максимального элемента. | В одну строку вводится информация по студенту в формате (без кавычек): «Имя возраст группа список оценок» Список оценок – это набор целых чисел от 2 до 5. Их может быть разное количество. Преобразовать эту информацию в список в формате: ['Имя', возраст, 'группа', [3, 5, 4, 2, ...]] То есть, сформировать вложенный список из оценок. Результат (список) вывести на экран. | Вводится семизначное целое положительное число. С помощью list comprehension сформировать список, содержащий цифры этого числа (в списке должны быть записаны числа, а не строки). Результат вывести на экран в одну строку через пробел. |
| 4 | Дан одномерный массив, состоящий из N целочисленных элементов. Ввести массив с клавиатуры. Найти минимальный элемент. Вывести индекс минимального элемента на экран. | Вводится список городов в одну строчку через пробел. Необходимо преобразовать его в список и вывести названия через один. Например: Ввод: Москва Омск Уфа Тверь Вывод: Москва Уфа Также вывести общее число введенных городов. | Вводятся названия городов в строку через пробел. Необходимо сформировать список с помощью list comprehension, содержащий названия городов длиной менее шести символов. Результат вывести на экран. |
| 5 | Дан одномерный массив, состоящий из N целочисленных элементов. Ввести массив с клавиатуры. Найти максимальный элемент. Вывести массив на экран в обратном порядке. | Вводится список оценок студента в одну строчку через пробел. Необходимо преобразовать эту строку в список из чисел и подсчитать количество двоек в нем. Результат (число двоек) вывести на экран. Программу реализовать без использования операторов циклов for или while | Вводятся вещественные числа в строку через пробел. Необходимо на их основе сформировать список с помощью list comprehension (генератора списков) из модулей введенных чисел (в списке должны храниться именно числа, а не строки). Результат вывести на экран. |