Подтвердить что ты не робот

Нарезка списка с использованием переменной в Python

Учитывая список

a = range(10)

Вы можете разрезать его с помощью таких утверждений, как

a[1]
a[2:4]

Однако я хочу сделать это на основе переменной, указанной в другом месте кода. Я легко могу сделать это для первого

i = 1
a[i]

Но как мне это сделать для другого? Я пробовал индексирование со списком:

i = [2, 3, 4]
a[i]

Но это не работает. Я также попытался использовать строку:

i = "2:4"
a[i]

Но это тоже не работает.

Возможно ли это?

4b9b3361

Ответ 1

что slice() для:

a = range(10)
s = slice(2,4)
print a[s]

но это не так уж сильно отличается от a[2:4].

Ответ 2

Почему это должна быть единственная переменная? Просто используйте две переменные:

i, j = 2, 4
a[i:j]

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

Ответ 3

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

a = range(10)
i = 2
j = 4

затем

print a[i:j]
[2, 3]

Ответ 4

>>> a=range(10)
>>> i=[2,3,4]

>>> a[i[0]:i[-1]]
range(2, 4)

>>> list(a[i[0]:i[-1]])
[2, 3]