Similar presentations:
Занятие 1.6
1. Списки в языке Python
2. Список
• Список — это упорядоченная изменяемаяколлекция элементов, которая может
включать различные типы данных.
• Списки в Python задаются с
использованием квадратных скобок [].
3. Примеры списков
• Пустой список: empty_list = []• Список с числами: numbers = [1, 2, 3, 4, 5]
• Список строк: names = ["Alice", "Bob",
"Charlie"]
• Смешанный список: mixed = [1, "Hello", 3.14,
True]
4. Создание списка
• Пустой список• empty_list = []
• empty_list = list()
• Списка последовательных чисел
• numbers = list(range(5))
• Списка букв слова
• s = ‘asdfasdf'
• chars = list(s)
5. Задача 1
• Введите в консоль число n и создайтесписок чисел от 0 до n.
6. Методы работы со списками
• len(nums) – возвращает количествоэлементов списка nums.
• sum(nums) – возвращает сумму элементов
списка чисел nums.
• min(nums) – возвращает минимальный
элемент списка чисел nums.
• max(nums) – возвращает максимальный
элемент списка чисел nums.
7. Задача 2
• numbers = [11, 24, -3, 45, 51, 12]• Выведете максимальное, минимальное,
сумму и длину списка numbers в консоль.
8. Оператор in
• Проверка наличия элемента:• print(3 in numbers)
9. Задача 3
• numbers = [11, 24, -3, 45, 51, 12]• Введите число в консоль. Если оно есть в
списке, выведете «Есть в списке», иначе
«Нет в списке».
10. Обращение к элементу списка
• Доступ по индексу:• element = numbers[0]
• Изменение элемента:
• numbers[0] = 10 - первый
• numbers[-1] = 10 - последний
• При этом нумерация элементов начинается
с 0.
11. Задача 4
• numbers = [11, 24, -3, 45, 51, -12]• Замените все отрицательные числа в списке
на положительные и выведете список в
консоль.
12. Срезы
• С помощью среза мы можем получитьнесколько элементов списка, создав
диапазон индексов, разделенных
двоеточием
• При построении
среза numbers[x:y] первое число – это то
место, где начинается срез (включительно),
а второе – это место, где заканчивается срез
(невключительно).
13. Срезы
• Указания диапазона могут быть пустые• numbers[3:] – с третьего элемента до конца
• numbers[:3] – с начала до 2 элемента
• Шаг среза
• numbers[::2] – элементы списка с шагом 2
• numbers[::-1] – элементы списка в обратном
порядке
14. Задача 5
• numbers = [11, 24, -3, 45, 51, -12]• Выведете в консоль первые три элемента,
затем последние три элемента, затем
элементы списка в обратном порядке.
15. Добавление элементов
• numbers.append(12) — добавляет элемент вконец списка.
• numbers.insert(4, 12) — вставляет элемент
12 на указанный индекс 4.
• numbers1.extend(numbers2) – добавляет
элементы из списка numbers2 в конец
списка numbers1.
• Аналог - numbers1 = numbers1 + numbers2
16. Задача 6
• Напишите программу, котораясоздаёт список, состоящий из делителей
введённого числа в порядке возрастания, а
затем выводит этот список.
17. Удаление элементов
• numbers.remove(element) — удаляет первоевхождение элемента.
• del numbers[5] - удаляет элемент под
индексом 5, тут также можно использовать
срезы.
18. Задача 7
• numbers = [11, 24, -3, 45, 51, -12]• Удалите каждый 2 элемент и выведете
список в консоль.
19. Метод split()
• Метод split() разбивает строку на слова,используя в качестве разделителя
последовательность пробельных символов,
и возвращает список из этих слов.
• s = “Some few words”
• words = s.split()
20. Метод join()
• Метод join() собирает строку изэлементов списка, используя в качестве
разделителя строку, к которой применяется
метод.
• words = [‘Some', ‘few', ‘words’]
• s = ' '.join(words)
21. Еще методы списка
• sort() — сортирует список по возрастанию.• reverse() — инвертирует порядок
элементов в списке.
22. Задача 8
• numbers = [11, 24, -3, 45, 51, -12]• Выведете в консоль список,
отсортированный в обратном порядке.
23. Списочные выражения
• Списочные выражения — это удобныйсинтаксический способ создания новых
списков на основе существующих списков
или других итерабельных объектов.
24. Синтаксис
• new_list = [expression for item in iterable ifcondition]
• expression: выражение, результат которого будет
добавляться в новый список.
• item: переменная, которая принимает значение
каждого элемента из iterable.
• iterable: объект, по которому можно итерироваться
(например, список, строка, range и т. д.).
• condition: опциональный фильтр, который
ограничивает элементы, добавляемые в новый
список.
25. Пример 1
• numbers = [1, 2, 3, 4, 5]• squares = [x**2 for x in numbers]
• print(squares)
26. Пример 2
• numbers = [1, 2, 3, 4, 5]• evens = [x for x in numbers if x % 2 == 0]
• print(evens)
27. Задача 9
• numbers = [1, 2, 3, 4, 5]• С помощью списочного выражения
создайте список квадратов чётных чисел
списка numbers.
28. Чтение из файла в список
• a = [int(x) for x in open(’17.txt’)]29. Ссылка на файлы
clck.ru/3PpKYq30. Задача 1
• В файле содержится последовательность целыхчисел. Её элементы могут принимать целые
значения от −100 000 до 100 000 включительно.
• Определите количество троек последовательности,
в которых все числа одного знака, при этом
произведение минимального и максимального
элементов тройки больше квадрата минимального
элемента последовательности, который
оканчивается на 15 и является трёхзначным числом.
• В ответе запишите количество найденных троек
чисел, затем минимальное из произведений
максимального и минимального элементов таких
троек. В данной задаче под тройкой
подразумевается три идущих подряд элемента
последовательности.
31. Задача 2
• В файле содержится последовательность целыхчисел. Её элементы могут принимать целые
значения от –100 000 до 100 000 включительно.
Определите количество троек элементов
последовательности, в которых хотя бы два числа
являются двузначными, а квадрат суммы чисел
тройки не больше максимального элемента
последовательности, оканчивающегося на 33. В
ответе запишите количество найденных троек,
затем максимальную из сумм элементов таких
троек. В данной задаче под тройкой
подразумевается три идущих подряд элемента
последовательности.
32. Задача 3
• В файле содержится последовательностьнатуральных чисел. Её элементы могут принимать
целые значения от 1 до 100 000 включительно.
Определите количество пар последовательности, в
которых хотя бы одно число делится на
минимальный элемент последовательности,
кратный 19. Гарантируется, что такой элемент в
последовательности есть. В ответе запишите
количество найденных пар, затем максимальную из
сумм элементов таких пар. В данной задаче под
парой подразумевается два идущих подряд
элемента последовательности.
33. Задача 4
• В файле содержится последовательностьнатуральных чисел. Элементы последовательности
могут принимать целые значения от 1 до 100 000
включительно. Определите количество пар
элементов последовательности, в которых сумма
остатков от деления обоих элементов на 18 равна
минимальному элементу последовательности. В
ответе запишите количество найденных пар, затем
максимальную из сумм элементов таких пар. В
данной задаче под парой подразумевается два
идущих подряд элемента последовательности.
34. Задача 5
• В файле содержится последовательность целыхчисел.
• Элементы последовательности могут принимать
целые значения от 1 до 100 000 включительно.
Определите количество пар последовательности, в
которых только один из элементов является
двузначным числом, а сумма элементов пары
кратна максимальному двузначному элементу
последовательности. В ответе запишите количество
найденных пар, затем максимальную из сумм
элементов таких пар. В данной задаче под парой
подразумевается два идущих подряд элемента
последовательности.
35. Задача 6
• В файле находится ряд целых чисел.• В файле содержится последовательность целых
чисел. Элементы ряда могут принимать целые
значения в диапазоне [−10000; 10000]. Определите
количество троек элементов в которых только одно
число трехзначное, и сумма элементов тройки
больше максимального числа последовательности
оканчивающегося на 24. В ответе запишите два
числа: сначала количество найденных троек, а
затем минимальную из сумм таких троек. В данной
задаче под тройкой подразумевается три идущих
подряд элемента последовательности.
36. Ответы
• 1) 3507 863808• 2) 28 237
• 3) 142 175430
• 4) 238 191665
• 5) 16 9702
• 6) 217 9542