Найти в Дзене

Python. Индексация. (10)

Индексация -это присвоение порядкового номера элементам последовательности. Индексироваться могут только упорядоченные последовательности т.е. такие у которых элементы не могут произвольно менять свое место. Такими последовательностями являются: строка(str), список(list), кортеж(tuple). Индексироваться последовательности могут как положительными индексами в этом случае номер первого элемента будет [0], так и отрицательными индексами в этом случае номер последнего элемента будет [-1] такая индексация удобна если неизвестно количество элементов последовательности.

Проиндексируем строку ‘table’, список [4, ‘fg’, 5,’h’, ‘ddd’] (кортеж индексируется так же как и список)

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

-2

Извлечение среза.

Полная запись операции извлечения среза выглядит следующим образом:

X[i :j: k] где:

Х – переменная которой присвоена последовательность, можно обойтись без нее тогда полная запись будет выглядеть вот так

‘asdefv’[i :j: k]

i - индекс элемента с которого начинается срез (этот элемент входит в срез)

j – индекс элемента которым заканчивается срез. На самом деле элемент с этим номером не войдет в срез. Срез закончится на предыдущем элементе.

k - шаг с которым извлекаются элементы последовательности.

-3

Все индексы являются необязательными

Можно не использовать шаг, по умолчанию он будет равен 1. Нужно учитывать, что элемент со вторым индексом в срез не входит, срез заканчивается предыдущем элементом.

-4

Как видно из примеров элемент со вторым индексом в срез не попал, срез закончился на элементе с индексом на единицу меньше второго индекса в случае с индексацией положительными индексами и на единицу больше в случае с индексацией отрицательными индексами.

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

-5

Если не указывать ни первый ни второй индекс ни шаг, но поставить в квадратных скобках двоеточие – получится копия последовательности.

-6

Если поставить только шаг срез будет выбран указанным шагом.

-7

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

-8

При использовании отрицательного шага и первых двух индексов, индексы нужно ставить в порядке убывания.

-9

Рассмотрены не все варианты но на мой взгляд принцип понятен.

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

-10

Но так можно делать только со списками (list). В неизменяемых упорядоченных последовательностях сроках(str) и кортежах(tuple) такая операция недоступна.

-11

На сегодня это все.

По ссылкам можно почитать мои конспекты:

Встроенные функции (Built-in)
Методы словаря (Dict methods)
Методы списков (List methods)
Строковые методы (String Methods)
Спецификаторы
Итерируемый тип данных
Инструкции continue, break и pass
Цикл for … in
Цикл while
Условная инструкция if
Индексация
Переменные
Встроенные функции print() и input()
Оператор присваивания
Основные типы данных
Коротко о языке
Книги и курсы по Python
Книги и курсы по Python год спустя.
Наука
7 млн интересуются