#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. Спасибо за помощь и совет! Он отлично вписался в мое более конкретное приложение