Срезы в питоне, последний элемент недоступен (python)

Модератор: Модераторы разделов

Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Срезы в питоне, последний элемент недоступен

Сообщение kt315e »

Я хочу взять подлист листа с помощью среза, типа:

Код:

s = [0,1,2,3,4,5] ni = 2 s1 = s[0:-ni]
Но в этом случае при ni = 0 мне вернут пустой список, вместо полного.
То есть способ с помощью срезов не даёт всего множества возможных результатов.
Надо костыли лепить :(
Может лекарство есть?
Спасибо сказали:
Kornelius
Сообщения: 86
ОС: Linux/BSD/Netware/OpenSolaris

Re: Срезы в питоне, последний элемент недоступен

Сообщение Kornelius »

Думаю что не очень подходящий форум для таких вопросов, лучше бы спросили это на чисто программерском форуме, где обсуждаются бинарные деревья и т.п.
Хотя полагаю и тут найдутся те, кто сможет вам помочь.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Срезы в питоне, последний элемент недоступен

Сообщение watashiwa_daredeska »

kt315e писал(а):
18.01.2009 23:17
Может лекарство есть?
Есть

Код: Выделить всё

s = [0,1,2,3,4,5]
ni = 2
s1 = s[0:len(s)-ni]
Спасибо сказали:
nobodyzzz
Сообщения: 2

Re: Срезы в питоне, последний элемент недоступен

Сообщение nobodyzzz »

watashiwa_daredeska писал(а):
21.01.2009 04:20
kt315e писал(а):
18.01.2009 23:17
Может лекарство есть?
Есть

Код: Выделить всё

s = [0,1,2,3,4,5]
ni = 2
s1 = s[0:len(s)-ni]


Код: Выделить всё

s = [0,1,2,3,4,5]
ni = 2
s1 = s[:-ni]
Спасибо сказали:
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Re: Срезы в питоне, последний элемент недоступен

Сообщение kt315e »

Первый способ конечно работает, он просто менее нагляден.
Второй для ni = 0 возвращает пустой список, ну нет в Питоне -0, а когда подставляю число с плавающей точкой -0.0, ругается дайте мне целое: TypeError: slice indices must be integers or None or have an __index__ method
Спасибо сказали: