Как вставить подстроку в строку из 8 символов и продолжить в Python?

#python #string #substring

#python #строка #подстрока

Вопрос:

Отредактировано: теперь я вижу, что он прерывается каждые 3-4 буквы, потому что он считает запятые. Как мне также заставить его игнорировать запятые?

У меня есть строка из букв, и каждые 8 букв я хочу вставить подстроку из 8 нулей. Итак, если мой ввод строки ‘H, e, l, l, o, W, o, r, l, d’, я хочу, чтобы мой вывод выглядел как ‘H, e, l, l, o, W, o, r, 0, 0, 0, 0,0,0,0,0, l, d ‘. Это то, что у меня есть до сих пор, но я вижу, что это ломается после того, как я перебираю примерно 3-4 буквы.

 x = 'H,e,l,l,o,W,o,r,l,d,I,t,I,s,A,G,o,o,d,D,a,y' 
count = 0
for ele in x:
    if count == 8:
        x = x[:count]   ',0,0,0,0,0,0,0,0,'   x[count:]
        count = 0
    else:
        count  = 1
 

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

1. Почему у вас есть запятые, разделяющие символы?

2. s = ''.join([x.replace(',', '') for x in s]) чтобы убрать запятые

3. Привет, они разделены запятыми, чтобы упростить пример. Данные, которые у меня на самом деле есть, не являются hello world. Приложение, которое у меня есть, немного сложнее, оно преобразует строковый ввод из ascii в двоичный, и в значительной степени я хочу сказать, что после каждых 8 бит вставляйте кучу 0, чтобы я мог видеть разрыв в символах.

4. К сожалению, я должен сохранить запятые для своего приложения

Ответ №1:

Поскольку у вас есть запятая после каждого символа, в вашем примере вы фактически вставляете нули после 16 символов. Простой способ сделать это заключается в следующем:

 distance = 16
insertion = '0,' * 8
x = 'H,e,l,l,o,W,o,r,l,d,I,t,I,s,A,G,o,o,d,D,a,y' 

parts = [x[i:i distance] for i in range(0, len(x), distance)]
result = insertion.join(parts)
 

Результатом будет:
'H,e,l,l,o,W,o,r,0,0,0,0,0,0,0,0,l,d,I,t,I,s,A,G,0,0,0,0,0,0,0,0,o,o,d,D,a,y'

Также короткое предупреждение: в вашем примере кода вы перебираете элементы x, но в цикле вы модифицируете x. Вы никогда не должны изменять переменную (итеративную), которую вы перебираете. Скорее, если вы хотите следовать вашему подходу, вам следует создать новую переменную в виде пустой строки y = '' , а затем объединить ваши новые строки в цикле for в y . В конце концов, вы можете заменить x на y.

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

1. Спасибо за помощь и совет! Он отлично вписался в мое более конкретное приложение