яндекс
  • 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 6. Списки

Задача «Извлечение подсписка с конца списка»

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib
Для анализа фотографий необходимо выделить определенные снимки из общего списка. Напишите программу, которая использует срезы для извлечения подсписка из списка фотографий, начиная с пятого элемента и до конца списка.
 
Пример:
Input:
            [1, 2, 3, 4, 5, 6, 7, 8]
Output:
            [5, 6, 7, 8]
 
Подсказка
Список (list) – это изменяемая коллекция, которая может содержать элементы различных типов. Списки в Python аналогичны массивам в других языках программирования, но предоставляют больше функциональности.
 
Создание списка
Список создается с помощью квадратных скобок [ ]:
# Пустой список
my_list = []
# Список с несколькими элементами
my_list = [1, 2, 3, 4, 5]
# Список с элементами разных типов
my_list = [1, "hello", 3.14, True]
 
Ввод списка в код
Вводить список через input() можно с помощью встроенной функции eval():
# Ввод через функцию eval()
my_list = eval(input()) # [1, 2, 3, 4, 5]
# Вывод списка
print(my_list) # Вывод: [1, 2, 3, 4, 5]
 
Добавление элементов в список
Python предоставляет несколько методов для добавления элементов в список:
append(): добавляет элемент в конец списка
insert(): вставляет элемент в определенную позицию
extend(): добавляет все элементы переданного итератора в конец списка
numbers = [1, 2, 3]

# Добавление элемента в конец
numbers.append(4)
print(numbers)  # Вывод: [1, 2, 3, 4]

# Вставка элемента на позицию 1
numbers.insert(1, 10)
print(numbers)  # Вывод: [1, 10, 2, 3, 4]

# Добавление нескольких элементов
numbers.extend([5, 6, 7])
print(numbers)  # Вывод: [1, 10, 2, 3, 4, 5, 6, 7]
 
Доступ к элементам списка
Элементы списка доступны по индексу, начиная с нуля:
my_list = [10, 20, 30, 40, 50]
# Доступ к первому элементу
print(my_list[0])  # Вывод: 10
# Доступ к последнему элементу
print(my_list[-1])  # Вывод: 50
# Доступ к элементу по индексу 2
print(my_list[2])  # Вывод: 30
 
Изменение элементов списка
Вы можете изменять элементы списка, используя их индексы, прямо как в строках:
my_list = [10, 20, 30, 40, 50]
my_list[1] = 25
print(my_list)  # Вывод: [10, 25, 30, 40, 50]
 
Срезы списка
Срезы позволяют получать подсписки, используя синтаксис start : stop : step:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Срез с 2 по 5 индекс
sublist = numbers[2:6]
print(sublist)  # Вывод: [3, 4, 5, 6]

# Срез с начала до 5 индекса
sublist = numbers[:6]
print(sublist)  # Вывод: [1, 2, 3, 4, 5, 6]

# Срез с 5 индекса до конца
sublist = numbers[5:]
print(sublist)  # Вывод: [6, 7, 8, 9]

# Срез с шагом 2
sublist = numbers[::2]
print(sublist)  # Вывод: [1, 3, 5, 7, 9]

# Срез в обратном порядке
sublist = numbers[::-1]
print(sublist)  # Вывод: [9, 8, 7, 6, 5, 4, 3, 2, 1]
 
Перебор элементов списка
Списки можно перебирать с помощью цикла for:
numbers = [1, 2, 3, 4, 5]
# Перебор элементов списка
for number in numbers:
    print(number)
# Вывод: 1
# Вывод: 2
# Вывод: 3
# Вывод: 4
# Вывод: 5
Также тоже самое можно с помощью функции range и длинны списка:
numbers = [1, 2, 3, 4, 5]
# Перебор элементов списка
for i in range(len(numbers)):
    print(numbers[i])
# Вывод: 1
# Вывод: 2
# Вывод: 3
# Вывод: 4
# Вывод: 5
 
Обработка нескольких элементов
numbers = [12, 6, 2, 4, 9, 6, 10]
for i in range(len(numbers)-1):
    if numbers[i]>numbers[i+1]:
        print(numbers[i], end = " ")
# Вывод: 12 6 9
Очень важно помнить про диапазон функции range, если вы хотите брать за одну итерацию цикла два и более элемента, то вам необходимо указать верный диапазон, чтобы вы не вышли за предел. В примере выше мы берем текущий элемент numbers[i] и следующий numbers[i+1], если мы не ограничим range на одну еденицу, то есть не уменьшим ее на это значение, range(len(numbers)-1), то получим ошибку "выход за предел списка", получается она из-за того, что когда мы доходим до последнего элемента, он пытается получить доступ к следующему [i+1], а его попросту не существует. Так же работает если вы хотите брать не 2, а 3 элемента.
 
Вывод содержимого массивов
numbers = [1, 2, 3, 4, 5]
# Перебор элементов списка
for i in range(len(numbers)):
    print(numbers[i], end=" ")
# Вывод: 1 2 3 4 5
В функции print(), есть аргумент end, он по умолчанию является переносом на следующую строку, но если в него указать " "(пробел), то он будет печатать все на одной строке end = " ".
Solution
Входные данные
Выходные данные

Тесты

2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...