Индексация -это присвоение порядкового номера элементам последовательности. Индексироваться могут только упорядоченные последовательности т.е. такие у которых элементы не могут произвольно менять свое место. Такими последовательностями являются: строка(str), список(list), кортеж(tuple). Индексироваться последовательности могут как положительными индексами в этом случае номер первого элемента будет [0], так и отрицательными индексами в этом случае номер последнего элемента будет [-1] такая индексация удобна если неизвестно количество элементов последовательности.
Проиндексируем строку ‘table’, список [4, ‘fg’, 5,’h’, ‘ddd’] (кортеж индексируется так же как и список)
С помощью индексации можно получать значение элементов последовательности, для этого нужно ввести переменную, которой присвоена последовательность и в квадратных скобках индекс желаемого элемента последовательности:
Извлечение среза.
Полная запись операции извлечения среза выглядит следующим образом:
X[i :j: k] где:
Х – переменная которой присвоена последовательность, можно обойтись без нее тогда полная запись будет выглядеть вот так
‘asdefv’[i :j: k]
i - индекс элемента с которого начинается срез (этот элемент входит в срез)
j – индекс элемента которым заканчивается срез. На самом деле элемент с этим номером не войдет в срез. Срез закончится на предыдущем элементе.
k - шаг с которым извлекаются элементы последовательности.
Все индексы являются необязательными
Можно не использовать шаг, по умолчанию он будет равен 1. Нужно учитывать, что элемент со вторым индексом в срез не входит, срез заканчивается предыдущем элементом.
Как видно из примеров элемент со вторым индексом в срез не попал, срез закончился на элементе с индексом на единицу меньше второго индекса в случае с индексацией положительными индексами и на единицу больше в случае с индексацией отрицательными индексами.
Если не указывать ни второй индекс ни шаг, но поставить двоеточие, то срез будет от первого индекса и до конца последовательности.
Если не указывать ни первый ни второй индекс ни шаг, но поставить в квадратных скобках двоеточие – получится копия последовательности.
Если поставить только шаг срез будет выбран указанным шагом.
Если не указывать первые два индекса, а шаг указать равный -1. Последовательность перевернется т.е. получится срез в котором последовательность элементов будет задом наперед.
При использовании отрицательного шага и первых двух индексов, индексы нужно ставить в порядке убывания.
Рассмотрены не все варианты но на мой взгляд принцип понятен.
В изменяемых упорядоченных последовательностях т.е списках (list) с помощью индексов можно изменять значение элементов.
Но так можно делать только со списками (list). В неизменяемых упорядоченных последовательностях сроках(str) и кортежах(tuple) такая операция недоступна.
На сегодня это все.
По ссылкам можно почитать мои конспекты:
Встроенные функции (Built-in)
Методы словаря (Dict methods)
Методы списков (List methods)
Строковые методы (String Methods)
Спецификаторы
Итерируемый тип данных
Инструкции continue, break и pass
Цикл for … in
Цикл while
Условная инструкция if
Индексация
Переменные
Встроенные функции print() и input()
Оператор присваивания
Основные типы данных
Коротко о языке
Книги и курсы по Python
Книги и курсы по Python год спустя.