Добро пожаловать на шестой урок нашего курса по программированию на Python! Сегодня мы подробно изучим списки в Python. Списки являются одним из наиболее важных и часто используемых типов данных в Python, позволяя хранить и обрабатывать коллекции элементов.
В данную статью добавлены ссылки на github в каждом примере. Так же общая ссылка на github для данного урока:
Что такое список?
Список в Python — это изменяемая последовательность элементов, которая может содержать элементы разных типов. Элементы списка упорядочены и доступны по индексам.
Создание списка:
Списки создаются с помощью квадратных скобок [], в которые помещаются элементы, разделенные запятыми.
empty_list = [] # Пустой список
numbers = [1, 2, 3, 4, 5]
fruits = ["яблоко", "банан", "вишня"]
mixed = [1, "два", 3.0, True]
Особенности списков:
- Изменяемость: Списки могут изменяться после создания (добавление, удаление, изменение элементов).
- Упорядоченность: Элементы хранятся в порядке их добавления.
- Разные типы данных: В списке могут храниться элементы разных типов.
Доступ к элементам списка.
Индексация:
Элементы списка доступны по индексу. Индексы начинаются с 0.
# Индексы
fruits = ["яблоко", "банан", "вишня"]
print(fruits[0]) # "яблоко"
print(fruits[1]) # "банан"
print(fruits[2]) # "вишня"
print()
Отрицательные индексы:
Отрицательные индексы позволяют обращаться к элементам с конца списка.
print(fruits[-1]) # "вишня"
print(fruits[-2]) # "банан"
print(fruits[-3]) # "яблоко"
Изменение элементов:
Можно изменять значение элементов списка по их индексу.
# Отрицательные индексы
fruits = ["яблоко", "банан", "вишня"]
print(fruits[-1]) # "вишня"
print(fruits[-2]) # "банан"
print(fruits[-3]) # "яблоко"
print()
Срезы списка.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[2:5]) # [3, 4, 5]
print(numbers[:4]) # [1, 2, 3, 4]
print(numbers[5:]) # [6, 7, 8, 9]
print(numbers[::2]) # [1, 3, 5, 7, 9]
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1]
Срезы позволяют получить подсписок из списка.
Описание синтаксиса:
список[начало:конец:шаг]
- начало — индекс начала среза (включительно).
- конец — индекс конца среза (не включается).
- шаг — шаг среза (необязательный параметр).
Операции со списками.
Длина списка:
Функция len() возвращает количество элементов в списке.
fruits = ["яблоко", "банан", "вишня"]
print(len(fruits)) # 3
Проверка наличия элемента:
Оператор in используется для проверки наличия элемента в списке.
print("яблоко" in fruits) # True
print("груша" in fruits) # False
Конкатенация списков:
Списки можно объединять с помощью оператора +.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined) # [1, 2, 3, 4, 5, 6]
Повторение списка:
Оператор * повторяет список заданное количество раз.
numbers = [0] * 5 print(numbers) # [0, 0, 0, 0, 0]
Основные методы списков.
Добавление элементов:
append(element) — добавляет элемент в конец списка.
# Использование append()
fruits = ["яблоко", "банан", "вишня"]
fruits.append("груша")
print(fruits) # ["яблоко", "банан", "вишня", "груша"]
print()
insert(index, element) — вставляет элемент на заданную позицию.
# Использование insert()
fruits = ["яблоко", "банан", "вишня"]
fruits.insert(1, "абрикос")
print(fruits) # ["яблоко", "абрикос", "банан", "вишня"]
Удаление элементов:
remove(element) — удаляет первое вхождение элемента.
# Использование remove()
fruits = ["яблоко", "банан", "вишня"]
fruits.remove("банан")
print(fruits) # ["яблоко", "вишня"]
print()
pop(index) — удаляет элемент по индексу и возвращает его.
last_fruit = fruits.pop()
print(last_fruit) # "вишня" print(fruits) # ["яблоко"]
clear() — удаляет все элементы из списка.
fruits.clear()
print(fruits) # []
Изменение порядка элементов:
reverse() — разворачивает список.
# Использование reverse()
numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers) # [5, 4, 3, 2, 1]
sort() — сортирует список.
# Использование sort()
numbers = [3, 1, 4, 2, 5]
numbers.sort()
print(numbers) # [1, 2, 3, 4, 5]
Копирование списка:
copy() — создает поверхностную копию списка.
original = [1, 2, 3]
print(f"Оригинальный список = {original}")
copy_list = original.copy()
print(f"Скопированный список = {copy_list}")
Вложенные списки (двумерные списки).
Списки могут содержать другие списки, образуя многомерные структуры.
Создание двумерного списка:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
Доступ к элементам:
print(matrix[0][0]) # Вывод: 1
print(matrix[1][2]) # Вывод: 6
Функции и методы для работы со списками.
Функция list():
Создает список из итерируемого объекта.
string = "Python"
char_list = list(string)
print(char_list) # Вывод: ['P', 'y', 't', 'h', 'o', 'n']
Функция len():
Возвращает количество элементов в списке.
numbers = [1, 2, 3, 4, 5]
print(len(numbers)) # Вывод: 5
Функции min() и max():
Возвращают минимальное и максимальное значения в списке.
print(min(numbers)) # Вывод: 1
print(max(numbers)) # Вывод: 5
Функция sum():
Вычисляет сумму элементов списка чисел.
total = sum(numbers)
print(total) # Вывод: 15
Функция sorted():
Возвращает отсортированный список, не изменяя исходный.
unsorted_numbers = [3, 1, 4, 2, 5]
sorted_numbers = sorted(unsorted_numbers)
print(sorted_numbers) # Вывод: [1, 2, 3, 4, 5]
print(unsorted_numbers) # Вывод: [3, 1, 4, 2, 5]
Практические примеры.
Пример1. Объединение списков:
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
combined_list = list1 + list2
print(combined_list) # Вывод: ["a", "b", "c", 1, 2, 3]
Пример 2. Дублирование списка:
numbers = [1, 2, 3]
duplicated_numbers = numbers * 2
print(duplicated_numbers) # Вывод: [1, 2, 3, 1, 2, 3]
Пример 3. Проверка наличия элемента и его количества:
letters = ['a', 'b', 'c', 'a', 'b', 'a']
count_a = letters.count('a')
print(f"Количество 'a' в списке: {count_a}") # Вывод: 3
Пример 4. Индекс элемента:
letters = ['a', 'b', 'c', 'a', 'b', 'a']
index_b = letters.index('b')
print(f"Первое вхождение 'b' находится на позиции: {index_b}") # Вывод: 1
Пример 5. Копирование списка:
original_list = [1, 2, 3]
copied_list = original_list.copy()
copied_list.append(4)
print("Оригинальный список:", original_list) # Вывод: [1, 2, 3]
print("Копия списка:", copied_list) # Вывод: [1, 2, 3, 4]
Заключение шестого урока.
Сегодня мы изучили:
- Списки в Python и способы их создания.
- Доступ к элементам списка с помощью индексов и срезов.
- Операции и методы для работы со списками (добавление, удаление, сортировка и др.).
- Вложенные списки и работу с многомерными данными.
- Генераторы списков, позволяющие создавать списки на основе выражений.
- Функции и методы для эффективной работы со списками.
Списки являются фундаментальным типом данных в Python, используемым для хранения и обработки коллекций элементов. Понимание списков и умение работать с ними — необходимый навык для эффективного программирования на Python.
Домашнее задание.
Задание 1: Создание и модификация списка.
- Создайте список numbers, содержащий числа от 1 до 5.
- Замените второй элемент на 10.
- Добавьте число 6 в конец списка.
- Удалите первый элемент списка.
- Выведите итоговый список.
Задание 2: Работа с вложенными списками.
- Создайте список matrix, представляющий матрицу 2x2:
- Замените элемент в позиции (1,1) на 5.
- Выведите элемент в позиции (0,1).
- Выведите итоговую матрицу.
Задание 3*: Генераторы списков.
- Используя генератор списков, создайте список even_numbers, содержащий четные числа от 2 до 20.
- Используя генератор списков, создайте список squares, содержащий квадраты чисел от 1 до 10.
Свои домашние работы отправляйте на почтовый ящик homework@kuzinobit.com.
Вопросы для самопроверки.
- Как создать список в Python и как добавить в него новый элемент?
- Как получить доступ к третьему элементу списка и изменить его значение?
- Что такое генератор списков и как его использовать?
- Как объединить два списка и как повторить список несколько раз?
- Как создать копию списка, чтобы изменения в копии не затрагивали оригинал?
Поздравляю с успешным освоением шестого урока! В следующем уроке мы продолжим изучать основы Python и познакомимся с условными операторами, такими как if, elif и else, которые позволят нам управлять потоком выполнения программы и выполнять различные действия в зависимости от условий. До встречи на следующем уроке!
Друзья, ставьте свои лайки и подписывайтесь на канал. Дальше будет только интереснее! До новых встреч!