📋 Списки [list]
Список - это структура данных, которая хранит несколько значений в одной переменной. Элементы списка идут по порядку и имеют индексы (как у строк).
🧺 1. Создание списка
Список создаётся в квадратных скобках [].
numbers = [1, 2, 3, 4]
words = ["кот", "пёс", "лиса"]
mixed = [10, "Hello", True, 3.14]
empty = []
🔹 Важно
- В списке могут быть элементы разных типов.
- Порядок элементов важен.
- Список можно изменять (он изменяемый).
🔍 2. Индексы и доступ к элементам
Индексация начинается с 0.
fruits = ["яблоко", "банан", "груша"]
print(fruits[0]) # яблоко
print(fruits[1]) # банан
print(fruits[-1]) # груша (последний элемент)
🔹 Изменение элемента по индексу
fruits[1] = "киви"
print(fruits) # ['яблоко', 'киви', 'груша']
✂️ 3. Срезы (slices)
Срезы работают так же, как у строк: list[start:stop:step].
nums = [0, 1, 2, 3, 4, 5, 6]
print(nums[1:4]) # [1, 2, 3]
print(nums[:3]) # [0, 1, 2]
print(nums[3:]) # [3, 4, 5, 6]
print(nums[::2]) # [0, 2, 4, 6]
print(nums[::-1]) # [6, 5, 4, 3, 2, 1, 0]
➕ 4. Операции со списками
🔹 Длина списка - len()
a = [10, 20, 30]
print(len(a)) # 3
🔹 Объединение списков
a = [1, 2]
b = [3, 4]
c = a + b
print(c) # [1, 2, 3, 4]
🔹 Повторение
x = [0] * 5
print(x) # [0, 0, 0, 0, 0]
🔹 Проверка наличия элемента in
colors = ["red", "green", "blue"]
print("green" in colors) # True
print("black" in colors) # False
🛠️ 5. Методы списков
🔹 Добавление элементов
| Метод | Что делает | Пример |
|---|---|---|
.append(x) |
Добавляет элемент в конец | a.append(5) |
.extend(lst) |
Добавляет все элементы другого списка | a.extend([1,2]) |
.insert(i, x) |
Вставляет элемент по индексу | a.insert(0, 99) |
a = [1, 2, 3]
a.append(4) # [1, 2, 3, 4]
a.extend([5, 6]) # [1, 2, 3, 4, 5, 6]
a.insert(1, 100) # [1, 100, 2, 3, 4, 5, 6]
print(a)
🔹 Удаление элементов
| Метод | Что делает | Важно |
|---|---|---|
.pop() |
Удаляет и возвращает последний | Можно указать индекс: .pop(0) |
.remove(x) |
Удаляет первое вхождение x |
Ошибка, если x нет |
.clear() |
Очищает список | Делает [] |
nums = [10, 20, 30, 20]
last = nums.pop()
print(last) # 20
print(nums) # [10, 20, 30]
nums.remove(20)
print(nums) # [10, 30]
nums.clear()
print(nums) # []
🔹 Поиск и сортировка
| Метод | Что делает |
|---|---|
.index(x) |
Возвращает индекс элемента |
.count(x) |
Считает, сколько раз встречается |
.sort() |
Сортирует список (меняет его) |
sorted(lst) |
Сортирует и возвращает новый список |
a = [3, 1, 2, 1]
print(a.count(1)) # 2
print(a.index(2)) # 2
a.sort()
print(a) # [1, 1, 2, 3]
b = sorted([5, 2, 9])
print(b) # [2, 5, 9]
🔁 6. Перебор списка циклом for
nums = [10, 20, 30]
for x in nums:
print(x)
🔹 Перебор с индексом: enumerate()
names = ["Аня", "Борис", "Катя"]
for i, name in enumerate(names):
print(i, name)
📌 Вывод:
0 Аня
1 Борис
2 Катя
🧠 7. Списки и ввод данных
Часто нужно собрать несколько значений от пользователя.
🔹 Пример: ввод (n) чисел
n = int(input("Сколько чисел? "))
nums = []
for _ in range(n):
x = int(input("Введите число: "))
nums.append(x)
print(nums)
🎓 Задания
🧪 1) Найти максимум и минимум
Пользователь вводит (n), затем вводит (n) целых чисел.
Программа должна: - сохранить числа в список - вывести минимальное и максимальное значение
Пример ввода
Сколько чисел? 5
Введите число: 10
Введите число: -2
Введите число: 7
Введите число: 7
Введите число: 3
Пример вывода
Минимум: -2
Максимум: 10
Решение:
n = int(input("Сколько чисел? "))
nums = []
for _ in range(n):
nums.append(int(input("Введите число: ")))
print(f"Минимум: {min(nums)}")
print(f"Максимум: {max(nums)}")
🧪 2) Удалить все нули
Пользователь вводит список чисел (вводим (n), затем (n) чисел).
Программа должна:
- удалить из списка все элементы, равные 0
- вывести новый список
Пример ввода
Сколько чисел? 6
Введите число: 0
Введите число: 5
Введите число: 0
Введите число: 2
Введите число: 0
Введите число: 7
Пример вывода
Результат: [5, 2, 7]
Решение:
n = int(input("Сколько чисел? "))
nums = []
for _ in range(n):
nums.append(int(input("Введите число: ")))
result = []
for x in nums:
if x != 0:
result.append(x)
print(f"Результат: {result}")
🧪 3) Среднее значение
Пользователь вводит (n) и затем (n) чисел.
Программа должна: - вычислить среднее арифметическое - вывести результат (можно с 2 знаками после запятой)
Пример ввода
Сколько чисел? 4
Введите число: 10
Введите число: 20
Введите число: 30
Введите число: 40
Пример вывода
Среднее: 25.00
Решение:
n = int(input("Сколько чисел? "))
nums = []
for _ in range(n):
nums.append(int(input("Введите число: ")))
avg = sum(nums) / n
print(f"Среднее: {avg:.2f}")