💀
Второй курс РПО
Разработка программных модулей
Разработка программных модулей
  • Модели разработки
  • Ошибки и отладка программ
  • Средства разработки алгоритмов
    • Основные принципы и стадии тестирования
  • Сложностные классы
  • Эмуляторы операционных систем
  • Сложность сортировки
  • Уровни тестирования
  • Задание №1
  • Регрессионное тестирование
  • Тестирование «белым ящиком»
  • Как делать оценку сложности?
  • Алгоритмы и сложность
  • Тестирование "белым ящиком" №2
  • Сложность алгоритмов
  • Тестирование "белым ящиком" №3
  • Тестирование "Чёрным ящиком»" №1
  • Тестирование "Черным ящиком" №2
  • Оценка сложности эвристических алгоритмов
  • Принципы ООП
  • Тестирование "Черным ящиком" №3
  • КТ - В3
  • Модульное тестирование
    • С кодами
  • Модульное тестирование
  • Абстрактные классы и интерфейсы в Python
  • Структуры в Python по аналогии с C++
    • Диалоги гениев
  • Делегаты в Python
    • Ещё более не смешные диалоги
  • Регулярные выражения в Python от простого к сложному
  • Python: Коллекции
  • Параметризованные классы (шаблоны)
  • Указатели и операции со списками в Python
  • Интеграционное тестирование
  • Работа с классами. Перегрузка методов
  • Определение операций в классе.
  • Создание наследованных классов
  • Интеграционное тестирование
  • Работа с объектами через интерфейсы
  • Использование стандартных интерфейсов
  • Работа с типом данных "Структура"
  • Коллекции. Параметризованные классы
  • Использование регулярных выражений
  • Операции со списками
  • Что такое паттерны проектирования?
  • Шпаргалка по шаблонам проектирования
    • [Habr] Шпаргалка
  • UML-диаграммы проектирования
  • Использование основных шаблонов.
  • Использование каких то там шаблонов
  • 15-я Практическая
  • 16-я Практическая
  • Graphviz Online
  • 17-я Практическая
  • Введение в теорию программирования: Объектно-ориентированный подход
  • Документирование софта и стандарты
  • C# Ввод и вывод
  • Оптимизация кода: просто о главном
  • Автоматизация разработки технической документации
  • Автоматизированное документирование и первичные данные
  • ADO.NET что это?
Powered by GitBook
On this page

Указатели и операции со списками в Python

20.01.2025

Указатели и операции со списками в Python

В языке программирования Python нет прямой работы с указателями, как в C++, однако логика работы с объектами в Python предполагает использование ссылок, что можно воспринимать как аналог указателей. Объекты в Python передаются по ссылке, что позволяет изменять их содержимое внутри функций. Рассмотрим основные операции со списками в Python.


Что такое списки в Python?

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

Пример создания списка:

my_list = [1, 2, 3, 4]

Списки поддерживают следующие ключевые операции:


Основные операции со списками

1. Добавление элементов

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

    my_list = [1, 2, 3]
    my_list.append(4)  # [1, 2, 3, 4]
  • insert(i, x): вставляет элемент x на позицию i.

    my_list = [1, 2, 3]
    my_list.insert(1, 10)  # [1, 10, 2, 3]

2. Удаление элементов

  • remove(x): удаляет первое вхождение элемента x.

    my_list = [1, 2, 3, 2]
    my_list.remove(2)  # [1, 3, 2]
  • pop(i): удаляет элемент на позиции i и возвращает его. Если индекс не указан, удаляется последний элемент.

    my_list = [1, 2, 3]
    popped = my_list.pop(1)  # popped = 2, my_list = [1, 3]

3. Изменение элементов

Прямое присваивание по индексу позволяет изменить значение элемента.

my_list = [1, 2, 3]
my_list[1] = 20  # [1, 20, 3]

4. Поиск элементов

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

    my_list = [1, 2, 3, 2]
    idx = my_list.index(2)  # idx = 1
  • count(x): подсчитывает количество вхождений элемента x.

    my_list = [1, 2, 2, 3]
    count = my_list.count(2)  # count = 2

5. Сортировка и обратный порядок

  • sort(): сортирует список на месте.

    my_list = [3, 1, 2]
    my_list.sort()  # [1, 2, 3]
  • reverse(): разворачивает список.

    my_list = [1, 2, 3]
    my_list.reverse()  # [3, 2, 1]

6. Копирование списка

  • Поверхностное копирование:

    new_list = my_list.copy()
  • Срез (shallow copy):

    new_list = my_list[:]

7. Слияние списков

  • С помощью +:

    list1 = [1, 2]
    list2 = [3, 4]
    combined = list1 + list2  # [1, 2, 3, 4]
  • С помощью extend():

    list1 = [1, 2]
    list1.extend([3, 4])  # [1, 2, 3, 4]

8. Длина списка

Используйте функцию len():

my_list = [1, 2, 3]
length = len(my_list)  # length = 3

Важный момент: ссылки и изменения списков

При работе со списками в Python важно помнить, что переменные хранят ссылку на объект списка, а не сам объект. Это может приводить к непредвиденным изменениям, если вы работаете с копиями.

Пример:

a = [1, 2, 3]
b = a  # b ссылается на тот же объект, что и a
b[0] = 10
print(a)  # [10, 2, 3]

Для создания независимой копии используйте метод copy() или модуль copy для глубокого копирования.


Полезные ссылки

PreviousПараметризованные классы (шаблоны)NextИнтеграционное тестирование

Last updated 4 months ago

Официальная документация Python
PythonWorld: списки