Как разрезать список от элемента n до конца в Python?

StackOverflow https://stackoverflow.com/questions/621354

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня возникли проблемы с выяснением того, как разрезать списки Python, это показано следующим образом:

>>> test = range(10)
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test[3:-1]
[3, 4, 5, 6, 7, 8]
>>> test[3:0]
[]
>>> test[3:1]
[]
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Насколько я понимаю, фрагмент Python означает lst[start:end], включая начало, исключая конец.Итак, как мне найти «остальную часть» списка, начиная с элемента n?

Большое спасибо за вашу помощь!

Это было полезно?

Решение

Вы можете оставить один конец среза открытым, не указав значение.

test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]

Другие советы

Если вы используете переменную в качестве конечной точки диапазона, вы можете использовать None .

 start = 4
 end = None
 test[start:end]

Просто опустите конец.

test[n:]

Опускание конца все еще работает, когда вы хотите пропустить некоторые:

range(10)[3::2] => [3, 5, 7, 9]

Вернуть фрагмент списка после начального значения:

list = ['a','b','c','d']
start_from = 'b' # value you want to start with
slice = list[list.index(start_from):] # returns slice from starting value to end

Вы также можете использовать None ключевое слово для конец параметр при нарезке.Это также вернет элементы до конца списка (или любого другого последовательность например кортеж, строка и т. д.)

# for list
In [20]: list_ = list(range(10))    
In [21]: list_[3:None]
Out[21]: [3, 4, 5, 6, 7, 8, 9]

# for string
In [22]: string = 'mario'
In [23]: string[2:None]
Out[23]: 'rio'

# for tuple
In [24]: tuple_ = ('Rose', 'red', 'orange', 'pink', 23, [23, 'number'], 12.0)
In [25]: tuple_[3:None]
Out[25]: ('pink', 23, [23, 'number'], 12.0)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top