Вставить пробелы в строку по известным индексам
Теперь в такую же строку по длине(там будут другие символы, но для примера оставим эту) должны вставиться пробелы из списка. У меня были попытки со срезами но это не работает так как надо. Может есть другой способ?
encrypt2 = "" k = 0 pov = 0 if(len(index_prob) > 0): while( k < len(index_prob)): if k == 0: encrypt2 += str_new[ : index_prob[k]] + " " print(encrypt2) elif k == len(index_prob) - 1: encrypt2 += str_new[index_prob[k] - k : ] print(encrypt2) else: encrypt2 += str_new[len(encrypt2) - 1 : index_prob[k] - 1] + " " print(encrypt2) k += 1 print(encrypt2)
Такой вопрос. Как мне вставить пробелы в строку, по индексам хранящимся в списке. Это так же должно работать когда есть много пробелов. Подскажите пожалуйста.
str = "sdf dsf hgfh" sdfdsfhgfh [3, 4, 5, 9, 10]
Как вставить пробел после каждого третьего символа в строке Python?
Например, на вход попадает число 100000. На выходе должно получится 100 000.
- Вопрос задан более года назад
- 1180 просмотров
Комментировать
Решения вопроса 1
Из какого словаря? В каком формате данные представлены в этом словаре? Разделять надо начиная слева или справа? Это конечно великая тайна автора, о которой он никому не поведает.
Но, для простейшего случая, если речь идет только в ВЫВОДЕ данных , изначально хранимых в виде чисел (между прочим - целых или даже float) то вот так:
a=10000000000 print(''.format(a).replace(',', ' '))
Результат:
10 000 000 000
А если вы имели ввиду что-то другое - ну так тюнингуйте мой пример под свои потребности самостоятельно. И учитесь свои мысли высказывать точно и однозначно. Это умение необходимо для программиста.
Ответ написан более года назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
- +3 ещё
Как сделать так, чтобы при регистрации пользователя в телеграмм боте его ID сохранялся в файле только один раз?
- 1 подписчик
- 10 минут назад
- 11 просмотров
Пробелы в выражениях и операторах языка Python
Однако при объединении аннотации аргумента со значением по умолчанию используйте пробелы вокруг знака '=' :
# Правильно def munge(sep: AnyStr = None): . def munge(input: AnyStr, sep: AnyStr = None, limit=1000): .
# Неправильно def munge(input: AnyStr=None): . def munge(input: AnyStr, limit = 1000): .
# Правильно if foo == 'blah': do_blah_thing() do_one() do_two() do_three()
# Неправильно if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three()
# Неправильно if foo == 'blah': do_blah_thing() for x in lst: total += x while t 10: t = delay() if foo == 'blah': do_blah_thing() else: do_non_blah_thing() try: something() finally: cleanup() do_one(); do_two(); do_three(long, argument, list, like, this) if foo == 'blah': one(); two(); three()
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Разметка кода Python, PEP 8
- Пробелы в выражениях и операторах языка Python
- Когда использовать запятые в коде на Python
- Комментарии в коде языка Python
- Соглашения об именах
- Рекомендации по программированию на Python
ХОЧУ ПОМОЧЬ
ПРОЕКТУ
В строке заменить пробелы символом *
В строке заменить пробелы звездочкой. Если встречается подряд несколько пробелов, то их следует заменить одним знаком * , пробелы в начале и конце строки удалить.
Решение задачи на языке программирования Python
Решение данной задачи классическим способом, без использования продвинутых возможностей Python, может быть таким.
Сначала избавляемся от пробелов в начале и конце строки, если они имеются. Для этого перебираем строку посимвольно сначала или с конца. Как только встречается первый непробельный символ, берем срез от него до конца строки или до начала, в случае удаления пробелов с конца.
Далее снова посимвольно перебираем строку. Если очередной символ не является пробелом, то формировать новую строку добавлением к ней этого символа. В ветку elif попадают символы пробела, но здесь проверяется не был ли равен предыдущий символ пробелу. Если это не так (не был равен), то только тогда к новой строке добавляется "*". Лишние пробелы будут просто пропущены и не добавлены к новой строке.
s = input() i = 0 while s[i] == ' ': i += 1 s = s[i:] i = len(s) while s[i - 1] == ' ': i -= 1 s = s[:i] s_new = s[0] i = 1 while i len(s): if s[i] != ' ': s_new += s[i] elif s[i - 1] != ' ': s_new += '*' i += 1 print(s_new + '!')
Пример выполнения скрипта:
one two three four f*ve six seven one*two*three*four*f*ve*six*seven!
Однако в языке программирования Python данную задачу проще решить, преобразовав строку в список. С помощью метода split строка разделяется на слова по пробелам. При этом неважно сколько их. Далее остается только снова собрать слова в строку. Проще это сделать строковым методом join :
s = input() l = s.split() s1 = '*'.join(l) print(s1)
X Скрыть Наверх
Решение задач на Python