@uf0361

Кто поможет исправить работу алгоритма?

Нужно написать алгоритм (на вход подаётся bytearray)который создаст набор последовательностей по определенному правилу вот пример:
П
Пр
Про
Прог
Прогр
Програ
Програм
Программ
Программа
Р
Ро
Рог
Рогр
Рогра
Рограм
Рограмм
Рограмма
О
Ог
Огр
Огра
Ограм
Ограмм
Ограмма
Г
Гр
Гра
Грам
Грамм
Грамма
Р
Ра
Рам
Рамм
Рамма
А
Ам
Амм
Амма
М
Мм
Мма
М
Ма
А

Написал вот такой код
com = []
    s=0
    d2 = [2,3,4,5,6,7,8,9,0]
    d2=bytearray(d2)
    while s <=p:
        if s <= p:
            scot=bytearray()
            for x in d2:
                scot.append(x)
                com.append(scot)
                
            if len(d2) != 0:
                d2.pop(0)
            s = s+1
        else:
            break


Ожидаемый print:

[bytearray(b'\x02'),
bytearray(b'\x02\x03'),
bytearray(b'\x02\x03\x04'),
bytearray(b'\x02\x03\x04\x05'),
bytearray(b'\x02\x03\x04\x05\x06'),
bytearray(b'\x02\x03\x04\x05\x06\x07'),
bytearray(b'\x02\x03\x04\x05\x06\x07\x08'),
bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t'),
bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'),
bytearray(b'\x03'),
bytearray(b'\x03\x04'),
bytearray(b'\x03\x04\x05'),
bytearray(b'\x03\x04\x05\x06'),
bytearray(b'\x03\x04\x05\x06\x07'),
bytearray(b'\x03\x04\x05\x06\x07\x08'),
bytearray(b'\x03\x04\x05\x06\x07\x08\t'),
bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'),
bytearray(b'\x04'),
bytearray(b'\x04\x05'),
bytearray(b'\x04\x05\x06'),
bytearray(b'\x04\x05\x06\x07'),
bytearray(b'\x04\x05\x06\x07\x08'),
bytearray(b'\x04\x05\x06\x07\x08\t'),
bytearray(b'\x04\x05\x06\x07\x08\t\x00'),
bytearray(b'\x05'),
bytearray(b'\x05\x06'),
bytearray(b'\x05\x06\x07'),
bytearray(b'\x05\x06\x07\x08'),
bytearray(b'\x05\x06\x07\x08\t'),
bytearray(b'\x05\x06\x07\x08\t\x00'),
bytearray(b'\x06'),
bytearray(b'\x06\x07'),
bytearray(b'\x06\x07\x08'),
bytearray(b'\x06\x07\x08\t'),
bytearray(b'\x06\x07\x08\t\x00'),
bytearray(b'\x07'),
bytearray(b'\x07\x08'),
bytearray(b'\x07\x08\t'),
bytearray(b'\x07\x08\t\x00'),
bytearray(b'\x08'),
bytearray(b'\x08\t'),
bytearray(b'\x08\t\x00'),
bytearray(b'\t'),
bytearray(b'\t\x00'),
bytearray(b'\x00')]


Фактический:

[bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x02\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x03\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x04\x05\x06\x07\x08\t\x00'), bytearray(b'\x05\x06\x07\x08\t\x00'), bytearray(b'\x05\x06\x07\x08\t\x00'), bytearray(b'\x05\x06\x07\x08\t\x00'), bytearray(b'\x05\x06\x07\x08\t\x00'), bytearray(b'\x05\x06\x07\x08\t\x00'), bytearray(b'\x05\x06\x07\x08\t\x00'), bytearray(b'\x06\x07\x08\t\x00'), bytearray(b'\x06\x07\x08\t\x00'), bytearray(b'\x06\x07\x08\t\x00'), bytearray(b'\x06\x07\x08\t\x00'), bytearray(b'\x06\x07\x08\t\x00'), bytearray(b'\x07\x08\t\x00'), bytearray(b'\x07\x08\t\x00'), bytearray(b'\x07\x08\t\x00'), bytearray(b'\x07\x08\t\x00'), bytearray(b'\x08\t\x00'), bytearray(b'\x08\t\x00'), bytearray(b'\x08\t\x00'), bytearray(b'\t\x00'), bytearray(b'\t\x00'), bytearray(b'\x00')]
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
@devdb
data='234567890'  # str / bytes / bytearray / list / tuple
for start in range(0,len(data)):
  for finish in range (start,len(data)):
    print( data[ start : finish+1 ], '\t\t start:',start,'   finish:',finish)

Output
2                start: 0    finish: 0
23               start: 0    finish: 1
234              start: 0    finish: 2
2345             start: 0    finish: 3
23456            start: 0    finish: 4
234567           start: 0    finish: 5
2345678                  start: 0    finish: 6
23456789                 start: 0    finish: 7
234567890                start: 0    finish: 8
3                start: 1    finish: 1
34               start: 1    finish: 2
345              start: 1    finish: 3
3456             start: 1    finish: 4
34567            start: 1    finish: 5
345678           start: 1    finish: 6
3456789                  start: 1    finish: 7
34567890                 start: 1    finish: 8
4                start: 2    finish: 2
45               start: 2    finish: 3
456              start: 2    finish: 4
4567             start: 2    finish: 5
45678            start: 2    finish: 6
456789           start: 2    finish: 7
4567890                  start: 2    finish: 8
5                start: 3    finish: 3
56               start: 3    finish: 4
567              start: 3    finish: 5
5678             start: 3    finish: 6
56789            start: 3    finish: 7
567890           start: 3    finish: 8
6                start: 4    finish: 4
67               start: 4    finish: 5
678              start: 4    finish: 6
6789             start: 4    finish: 7
67890            start: 4    finish: 8
7                start: 5    finish: 5
78               start: 5    finish: 6
789              start: 5    finish: 7
7890             start: 5    finish: 8
8                start: 6    finish: 6
89               start: 6    finish: 7
890              start: 6    finish: 8
9                start: 7    finish: 7
90               start: 7    finish: 8
0                start: 8    finish: 8

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы