• burger-icon

    Шаг 1. Список

    Баллов за прохождение: 1

    Список

    Список в Python - это упорядоченная2 коллекция элементов, которые могут быть разного типа данных1. Он представляет собой одну из наиболее мощных и универсальных структур данных в Python, позволяющую хранить, обрабатывать и манипулировать3 множеством значений в одной переменной.

    Давайте представим список как коробку, в которой можно хранить множество вещей. Мы можем туда сложить книги, фрукты и вещи. Хранить можно всё. Здесь каждый предмет имеет свою позицию, будто полочку.

    В Python, список - как коробка. Туда можно положить целые числа, строчки, другие списки, даже объекты4. Для того, чтобы достать нужный элемент нужно использовать индексацию.

    cars = ['Mercedes', 'Tesla', 'BMW', 'Porshe']
    print(cars)
    print(cars[0])
    print(cars[-1])
    print(cars[1:-1])
    

    Методы списка

    Методы - это функции, которые вызываются с использованием точечной нотации, где указывается имя объекта, за которым следует точка и имя метода, например: object.method().

    Методы - это функции, связанные с определенными объектами. Они представляют собой действия, которые можно выполнять над объектами определенного типа данных, в нашем случае со списком.

    Основные методы списков:

    1. append(): Этот метод добавляет элемент в конец списка.

    my_list = [1, 2, 3]
    my_list.append(4)
    print(my_list)  # Вывод: [1, 2, 3, 4]

    2. extend(): Этот метод добавляет элементы другого списка в конец текущего.

    my_list = [1, 2, 3]
    another_list = [4, 5, 6]
    my_list.extend(another_list)
    print(my_list)  # Вывод: [1, 2, 3, 4, 5, 6]

    3. insert(): Этот метод вставляет элемент в указанную позицию списка.

    my_list = [1, 2, 3]
    my_list.insert(1, 5)
    print(my_list)  # Вывод: [1, 5, 2, 3]

    4. remove(): Этот метод удаляет первое вхождение указанного элемента из списка.

    my_list = [1, 2, 3, 4, 2]
    my_list.remove(2)
    print(my_list)  # Вывод: [1, 3, 4, 2]

    5. pop(): Этот метод удаляет элемент по указанному индексу и возвращает его значение.

    my_list = [1, 2, 3]
    popped_value = my_list.pop(1)
    print(popped_value)  # Вывод: 2
    print(my_list)       # Вывод: [1, 3]

    6. index(): Этот метод возвращает индекс первого вхождения указанного элемента.

    my_list = [1, 2, 3, 2]
    index = my_list.index(2)
    print(index)  # Вывод: 1

    7. count(): Этот метод возвращает количество вхождений указанного элемента в списке.

    my_list = [1, 2, 3, 2]
    count = my_list.count(2)
    print(count)  # Вывод: 2

    8. sort(): Этот метод сортирует элементы списка в порядке возрастания (по-умолчанию) или по другому указанному критерию.

    my_list = [3, 1, 4, 2]
    my_list.sort()
    print(my_list)  # Вывод: [1, 2, 3, 4]

    9. reverse(): Этот метод изменяет порядок элементов списка на обратный.

    my_list = [1, 2, 3]
    my_list.reverse()
    print(my_list)  # Вывод: [3, 2, 1]

    10. clear(): Этот метод удаляет все элементы из списка.

    my_list = [1, 2, 3]
    my_list.clear()
    print(my_list)  # Вывод: []

    Индексация

    Индексация - это способ доступа к отдельным элементам списка по их позициям или индексам. Индексация начинается с 0, то есть первый элемент списка нулевой (имеет индекс 0), второй - 1 и так далее.

    Положительная индексация

    Используется для доступа к элементам списка начиная с начала. Первый элемент нулевой, второй - 1, и так далее.

    my_list = ['a', 'b', 'c', 'd', 'e']
    print(my_list[0])  # Вывод: 'a'
    print(my_list[2])  # Вывод: 'c'

    Отрицательная индексация

    Позволяет обращаться к элементам списка, начиная с конца. Самый последний элемент имеет индекс -1, предпоследний - индекс -2, и так далее.

    my_list = ['a', 'b', 'c', 'd', 'e']
    print(my_list[-1])  # Вывод: 'e'
    print(my_list[-3])  # Вывод: 'c'

    Срезы (slicing)

    Позволяют извлекать подсписок из списка, указывая начальный и конечный индексы.

    my_list = ['a', 'b', 'c', 'd', 'e']
    print(my_list[1:4])  # Вывод: ['b', 'c', 'd']

    То есть от 1 элемента, до 4 не включительно.

    Шаг среза (step)

    При переборе и индексации можно указать шаг при создании среза:

    my_list = ['a', 'b', 'c', 'd', 'e']
    print(my_list[0:5:2])  # Вывод: ['a', 'c', 'e']

    По умолчанию шаг 1, мы же указали шаг 2, а значит элементы выбираются через один. Логика: [start:stop:step].

    Пропущенные индексы в срезах

    Если начальный или конечный индекс в срезе не указан, Python будет использовать начало или конец списка соответственно.

    my_list = ['a', 'b', 'c', 'd', 'e']
    print(my_list[:3])   # Вывод: ['a', 'b', 'c']
    print(my_list[2:])   # Вывод: ['c', 'd', 'e']

    Изменение и присваивание элементов по индексу.

    Существующие элементы можно изменять, присваивая им новые значения по их индексам.

    my_list = ['a', 'b', 'c', 'd', 'e']
    my_list[2] = 'z'
    print(my_list)  # Вывод: ['a', 'b', 'z', 'd', 'e']

    Перебор через while

    Конечно перебор списков через цикл while не так распространён, как с помощью for, однако это может быть полезным в некоторых случаях.

    Например, простой перебор и вывод всех элементов списка с помощью цикла while:

    my_list = [1, 2, 3, 4, 5]
    index = 0
    while index < len(my_list):
        print(my_list[index])
        index += 1

    Заметки

    1 - Отличие список от массивов в других языках программирования в том, что список может хранить разные элементы, не одного типа;

    2 - Упорядоченная, значит что каждый элемент в списке имеет свои индексы;

    3 - Списки, в отличии от кортежа, можно видоизменять с помощью различных методов объекта;

    4 - Объекты, т.е экземпляры класса. Почти всё в Python является объектами. Это касается темы ООП, которую мы пройдем в будущем.

    Для решения задачи, Зарегистрируйтесь или Войдите на сайт.