Статья Python3 4.Длина списка,Срез Списка

gx6060

Python
Премиум
21.09.2016
48
78
#1
1.Длина списка

Как было сказано в предыдущей теме , если выйти за пределы индекса списка , Python возвратит нам сообщение об ошибке и прервет выполнение кода , для предотвращения этого существует функция len() которая возвращает нам длину списка (количество элементов в списке) представленных в виде целого числа:
Python:
>>> list = [1, 2, 3, 4, 5, 6, 7]
>>> len(list)
9
Предположим что вы не знаете количество элементов в списке , для того что бы узнать индекс последнего элемента используем функцию len() и отнимаем от значения 1 ( единицу)
Python:
>>> list = [0, 1, 2, 3, 4, 5, 6]
>>> last_index = len(list) -1
>>> print(last_index)
6
Индексация начинается с 0 а не 1

2.Срез списка


Для списков в которых содержится большое кол-во элементов , а необходимые нам элементы находятся где то в середине списка где то между индексом 200 и 250.
В Python есть функция срез списка которая позволяет вывести значения от начала указанного индекса до его конца не включая его конечный индекс , срез указывается в скобках целыми числами в скобках разделённые двоеточием [200:230].
Данный вид среза вернет элементы списка от 200 до 229 , последний элемент считается исключением
Python:
>>> list = ["Zero", "One", "Two", "Three", "Four", "Five", "Six"]
>>> one_five = list[1:6] # срез вернет значения от 1 до 5 включая его , 6 считается исключением
>>> print(one_five)
["One", "Two", "Three", "Four", "Five"]
Функцию len() возможно использовать что бы узнать кол-во элементов и использовать его как конечный индекс.
Python:
>>> list = ["Zero", "One", "Two", "Three", "Four", "Five", "Six"] # список
# назначаем переменной общее кол-во элементов списка , отнимаем единицу
>>> last_index = len(list) - 1
# используем срез от второго индекса до последнего
>>> two_last = list[2:last_index]
>>> print(two_last) # выводим функцией принт
["Two", "Three", "Four", "Five", "Six"]
To be continued...
 
Последнее редактирование:

id2746

Red Team
12.11.2016
282
432
#2
не пойму, некоторые примеры принимают у меня другой результат.
например последний (у меня так):
Python:
>>> list = ["Zero", "One", "Two", "Three", "Four", "Five", "Six"]
>>> last_index = len(list) - 1
>>> two_last = list[2:last_index]
>>> print(two_last)
["Two", "Three", "Four", "Five"]
 
Симпатии: Понравилось Lisenok

snowdevi7

New member
13.02.2017
2
0
#3
<code>two_last = list[2:last_index]</code>
не пойму, некоторые примеры принимают у меня другой результат.
например последний (у меня так):
Python:
>>> list = ["Zero", "One", "Two", "Three", "Four", "Five", "Six"]
>>> last_index = len(list) - 1
>>> two_last = list[2:last_index]
>>> print(two_last)
["Two", "Three", "Four", "Five"]
Так и должно быть, в массиве 7 элементов, поэтому last_index = 7 - 1 = 6.
Тогда two_last = list[2:6], т. е. в two_last будут элементы со второго по шестой, при этом шестой элемент не включается, т. е. ["Two", "Three", "Four", "Five"].
Если хочешь получить ["Two", "Three", "Four", "Five", "Six"], надо писать так

Python:
>>> list = ["Zero", "One", "Two", "Three", "Four", "Five", "Six"]
>>> last_index = len(list)
>>> two_last = list[2:last_index]
Ну а если по хорошему, то для того, чтобы получить срез массива, начиная с какого-то элемента до конца массива, обычно используют конструкцию two_last = list[2:-1].