Теоретический материал
Сайт: | Информатикс |
Курс: | Д. П. Кириенко. Программирование на языке Python (школа 179 г. Москвы) |
Книга: | Теоретический материал |
Напечатано:: | Гость |
Дата: | Суббота, 28 Июнь 2025, 21:32 |
Срезы
Со списками, так же как и со строками, можно делать срезы. А именно:
A[i:j]
срез из j-i
элементов
A[i]
, A[i+1]
, ..., A[j-1]
.
A[i:j:-1]
срез из i-j
элементов
A[i]
, A[i-1]
, ..., A[j+1]
(то есть меняется порядок элементов).
A[i:j:k]
срез с шагом k
:
A[i]
, A[i+k]
, A[i+2*k]
,... .
Если значение k
<0, то элементы идут в противоположном порядке.
Каждое из чисел i
или j
может отсутствовать,
что означает “начало строки” или “конец строки”
Списки, в отличии от строк, являются изменяемыми объектами: можно отдельному элементу списка присвоить новое значение. Но можно менять и целиком срезы. Например:
A = [1, 2, 3, 4, 5] A[2:4] = [7, 8, 9]
Получится список, у которого вместо двух элементов среза A[2:4]
вставлен новый список уже из трех элементов. Теперь список стал равен
[1, 2, 7, 8, 9, 5]
.
A = [1, 2, 3, 4, 5, 6, 7] A[::-2] = [10, 20, 30, 40]
Получится список [40, 2, 30, 4, 20, 6, 10]
. Здесь
A[::-2]
— это список из элементов
A[-1]
, A[-3]
, A[-5]
, A-7
,
которым присваиваются значения 10, 20, 30, 40 соответственно.
Если не непрерывному срезу (то есть срезу с шагом k
, отличному
от 1), присвоить новое значение, то количество элементов в старом и новом срезе
обязательно должно совпадать, в противном случае произойдет ошибка ValueError
.
Обратите внимание, A[i]
— это элемент списка, а не срез!
Операции со списками
Со списками можно легко делать много разных операций.
x in A | Проверить, содержится ли элемент в списке. Возвращает True или False |
x not in A | То же самое, что not(x in A) |
min(A) | Наименьший элемент списка |
max(A) | Наибольший элемент списка |
A.index(x) | Индекс первого вхождения элемента x в список, при его отсутствии генерирует исключение ValueError |
A.count(x) | Количество вхождений элемента x в список |