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

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

У меня есть строка букв, и каждые 8 ​​букв я хочу вставить подстроку из 8 нулей. Итак, если мой ввод строки «H, e, l, l, o, W, o, r, l, d», я хочу, чтобы мой вывод выглядел как «H, e, l, l, o, W, o, г, 0, 0, 0, 0, 0, 0, 0, 0, л, д'. Это то, что у меня есть до сих пор, но я вижу, как оно ломается после того, как я перебираю 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

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

angelogro 14.12.2020 17:13
s = ''.join([x.replace(',', '') for x in s]) убрать запятые
JacksonPro 14.12.2020 17:17

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

lceans 14.12.2020 17:18

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

lceans 14.12.2020 17:19
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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.

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

lceans 14.12.2020 17:56

Другие вопросы по теме