получить из переменной каждые 3 элемента через один, то есть:
123
234
345
456
567
678
789
890
line = '1234567890' n = 3 [line[i:i+n] for i in range(0, len(line), n)]
это возвращает 123, 456, 789 0, а мне нужно: 123, 234, 345, 456, 567, 678, 789, 890, то есть через один элемент
>>> example = '1234567890' >>> its = [iter(example) for _ in range(3)] >>> _ = [next(it) for skip, it in enumerate(its) for _ in range(skip)] >>> [*zip(*its)] [('1', '2', '3'), ('2', '3', '4'), ('3', '4', '5'), ('4', '5', '6'), ('5', '6', '7'), ('6', '7', '8'), ('7', '8', '9'), ('8', '9', '0')] >>>
[line[i:i+3] for i in range(len(line)) if i+2 < len(line)]
Обсуждают сегодня