Практическое занятие №45 (1И)
Тема: Понятие списка в Python. Создание и считывание списков
Цель работы: формирование теоретических и практических навыков работы на языке программирования Python
Оборудование: компьютер с установленной операционной системой Windows, подключение к сети Интернет
Время работы 2 часа
Теоретические сведения
Список – последовательность элементов, объединенных в один контейнер. Главная особенность – они изменяемы.
Элементы списка индексируются, состоят в основном из однотипных данных, перебираются, сохраняют порядок.
Для решения заданий необходимо повторить свойства и методы списков. Ход работы
Задача 1
Дан произвольный список. Представьте его в обратном порядке.
my_list = [2, 4, 8]
my_list.reverse()
print(my_list)
Задача 2
Напишите функцию change(lst), которая принимает список и меняет местами его первый и последний элемент. В исходном списке минимум 2 элемента.
def change(lst):
new_start = lst.pop() # Удаляем последний элемент и сохраняем его в переменную
new_end = lst.pop(0) # Удаляем первый элемент и сохраняем его в переменную
lst.append(new_end) # Добавляем к списку новый последний элемент
lst.insert(0, new_start) # Добавляем к списку новый первый элемент
return lst
# Тесты
print(change([1, 2, 3]))
print(change([1, 2, 3, 4, 5]))
print(change(['н', 'л', 'о', 'с']))
Задача 3
Функция to_list() принимает неограниченное количество параметров. Обработайте их так, чтобы на выходе получить список из этих элементов.
def to_list(*args):
return list(args)
# Тесты
print(to_list(1, 5, 77))
print(to_list('Молоко', 5, '2020 год'))
print(to_list([3, 4, 7], 8.3, True, 'Строка'))
Задача 4
Николай задумался о поиске «бесполезного» числа на основании списка. Суть оного в следующем: он берет произвольный список чисел, находит самое большое из них, а затем делит его на длину списка. Студент пока не придумал, где может пригодиться подобное значение, но ищет у вас помощи в реализации такой функции useless(s).
def useless(lst):
return max(lst) / len(lst)
# Тесты
print(useless([1, 5, 77]))
print(useless([19, 8.3, -4, 11, 0, 5]))
print(useless([-33, -0.05, -4.18, 11.2, 13.12, 55, 7.1]))
Задача 5
Требуется создать функцию list_sort(lst), которая сортирует список чисел по убыванию их абсолютного значения.
def list_sort(lst):
lst.sort(key=lambda x: abs(x), reverse=True)
return lst
# Тесты
print(list_sort([1, 5, 77]))
print(list_sort([19, 8.3, -4, 11, 0, 5]))
print(list_sort([-33, -0.05, -4.18, 11.2, 13.12, 55, 7.1]))
Задача 6
На входе имеем список строк разной длины. Необходимо написать функцию all_eq(lst), которая вернет новый список из строк одинаковой длины. Длину итоговой строки определяем исходя из самой большой из них. Если конкретная строка короче самой длинной, дополнить ее нижними подчеркиваниями с правого края до требуемого количества символов.
Расположение элементов начального списка не менять.
def all_eq(lst):
max_item = max(lst, key=lambda x: len(x))
max_len = len(max_item)
return [item.ljust(max_len, '_') for item in lst]
# Тесты
print(all_eq(['крот', 'белка', 'выхухоль']))
print(all_eq(['a', 'aa', 'aaa', 'aaaa', 'aaaaa']))
print(all_eq(['qweasdqweas', 'q', 'rteww', 'ewqqqqq']))
Контрольные вопросы:
Перечислите характеристики типа данных «список»
Как проверить наличие элемента в списке?
Какие параметры можно передавать при срезах списков?