Здравствуйте, я новичок в программирование, вот не пойму как работает этот срез. 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 шт):
Давайте абстрагируемся от конкретно вашего кода для начала.
Допустим, у нас есть список 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 вызова цикла:
- x = 0:
s[x:x + n]дастs[0:3]то есть['a', 'b', 'c'] - x = 3:
s[x:x + n]дастs[3:6]то есть['d', 'e', 'f']
Немного практики поможет вам разобраться лучше.
Всем добра-бобра