Здравствуйте, я новичок в программирование, вот не пойму как работает этот срез. s[x:x + n]

Мне не понятно как здесь работает 'n', что она прибавляет.

s = 'a b c d e f'.split()
n = 3
my_list = list()
for x in range(0, len(s), n):
    my_list.append(s[x:x + n])
print(my_list)

Ответы (1 шт):

Автор решения: DiHASTRO

Давайте абстрагируемся от конкретно вашего кода для начала.

Допустим, у нас есть список s = [0, 1, 2, 3, 4, 5, 6] И мы возьмём срез slice = s[2:5]. В переменную slice внесётся такой список: [2, 3, 4].

То есть, в общем смысле будет так:

срез s[a:b] даст нам список от a до b - 1 (включая оба как a, так и b - 1)

P.S. не забываем, что в программировании счёт везде идёт с 0


В вашем же случае мы видим фиксированную переменную n = 3 и цикл for, перебирающий все значения от 0 до len(s) - 1 (включительно) с шагом в n = 3.

Имеем, что у вас будет 2 вызова цикла:

  1. x = 0: s[x:x + n] даст s[0:3] то есть ['a', 'b', 'c']
  2. x = 3: s[x:x + n] даст s[3:6] то есть ['d', 'e', 'f']

Немного практики поможет вам разобраться лучше.


Всем добра-бобра

→ Ссылка