Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Списки, срезы продолжение. (приложение к уроку 13)

Доброго времени суток, читатели, зрители моего канала programmer's notes. Данная статья это приложение к уроку 13. Списки. Срезы в списках Срезы для списков очень похожи на срезы для строк, но обладают более богатыми возможностями. Срезы справа от знака равно Поскольку срезы, стоящие справа от знака равенства такие же как срезы для строк ограничимся примерами. ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls1 = ls[2:5]
print(ls1) Результат [3, 4, 5] Можно использовать шаг ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls1 = ls[2:5:2]
print(ls1) Результат [3, 5] Получить список в обратном порядке ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls1 = ls[-1::-1]
print(ls1) Результат [9, 8, 7, 6, 5, 4, 3, 2, 1] Соответственно, как и для строк Вставка списка в список ls = ls[0:2] + [100, 101, 102] + ls[2:] Замена одного фрагмента списка на другой ls = ls[0:2] + [100, 101, 102] + ls[4:] Удаление фрагмента списка ls = ls[0:2] + ls[4:] Срезы слева от знака равно Но срезы у списков могут стоять слева от знака равенства Удаление фраг
Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Данная статья это приложение к уроку 13.

Списки. Срезы в списках

Срезы для списков очень похожи на срезы для строк, но обладают более богатыми возможностями.

Срезы справа от знака равно

Поскольку срезы, стоящие справа от знака равенства такие же как срезы для строк ограничимся примерами.

ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls1 = ls[2:5]
print(ls1)

Результат

[3, 4, 5]

Можно использовать шаг

ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls1 = ls[2:5:2]
print(ls1)

Результат

[3, 5]

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

ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls1 = ls[-1::-1]
print(ls1)

Результат

[9, 8, 7, 6, 5, 4, 3, 2, 1]

Соответственно, как и для строк

Вставка списка в список

ls = ls[0:2] + [100, 101, 102] + ls[2:]

Замена одного фрагмента списка на другой

ls = ls[0:2] + [100, 101, 102] + ls[4:]

Удаление фрагмента списка

ls = ls[0:2] + ls[4:]

Срезы слева от знака равно

Но срезы у списков могут стоять слева от знака равенства

Удаление фрагмента списка

ls[3:5] = []

Замена одного из фрагментов списка на другой список

ls[3:5] = [100, 101, 102]

Вставка списка в другой список

ls[3:3] = [100, 101, 102]

А вот и изюминка

ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ls[0::2] = [100, 101, 102, 103, 104]
print(ls)

Результат

[100, 2, 101, 4, 102, 6, 103, 8, 104]

Попробуйте объяснить результат

Оператор del и срезы

Оператор del позволяет удалять не только отдельные переменные, но и элементы списка.

del ls[0]

или

del ls[1], ls[2]

Если список удаления состоит из нескольких элементов, то следует иметь в виду, что удаление происходит последовательно слева направо. Т.е. второе удаление осуществляется в списке, где уже выполнено первое, третье удаление из списка, где произведено второе и т.д. При этом надо иметь в виду, что при каждом удалении меняются индексы и следующее удаление осуществляется из списка, где изменились индексы элементов. В выше приведенном примере ls[2] для нового списка будет соответствовать ls[1]. Эти моменты всегда следует учитывать. Правда можно производить удаление начиная с больших индексов. Это вариант.

А вот при удалении с использованием срезов таких проблем нет

del ls[1:3]

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

ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del ls[1::2]
print(ls)

Удаление элементов стоящих на не четных местах

Конечно, в операторе del можно указывать и несколько срезов, перечисляя их через запятую, не забывая при этом об изменении индексов.

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Технологии в программировании меняются так быстро, что основная задача по созданию программного обеспечения в России ложится на молодых. А сделать в нашей стране нужно очень многое
Технологии в программировании меняются так быстро, что основная задача по созданию программного обеспечения в России ложится на молодых. А сделать в нашей стране нужно очень многое

#программирование #программисты #python #языки программирования