Редактирование позиции в списках

#python #list

#python #Список

Вопрос:

При редактировании позиции в списке допустим

 A=[1,2,3,4]
A[1:-1]
 

возвращает 2,3 , но что, если я хочу, чтобы оно увеличивалось для каждого, скажем i
так, для большого списка или для проверки, является ли предложение палиндромом. После выполнения этого один раз я хочу, чтобы он возвращался a[2:-2] , не превращая его в цикл, который зацикливается вокруг переменной. Есть ли способ просто добавить значения к этому, не делая это рекурсивно, где он автоматически зацикливается, или это единственный способ сделать это просто двумя переменными и изменить переменные вне кода?

Комментарии:

1. Существует нечто, называемое «понимание списка», если вы хотите прочитать о возможно более коротком синтаксисе. Однако не уверен, что именно вы просите.

2. Неясно, о чем вы спрашиваете, возможно, добавьте пример.

Ответ №1:

Боюсь, что без циклов / рекурсии это невозможно. Чтобы сделать это с помощью рекурсии, допустим, это работает для вас.

 def recur(arr,i=0,arr1=[]):
  if i==len(arr):
    return arr1
  else:
    arr1.append(arr[i:-i])
    i =1
    recur(arr,i,arr1)
 

использование цикла for

 arr=[1,2,3,4]
arr1=[arr[i:-i] for i in range(len(arr)]
print(arr1)
 

Редактировать:

Это понимание списка. true для цикла будет

 arr1=[]
arr=[1,2,3,4]
for i in range(len(arr):
  arr1.append(arr[i:-i])