Найти - Пользователи
Полная версия: вопрос по строкам
Начало » Python для новичков » вопрос по строкам
1
alexswsw
есть вот такая строка ‘ dd ’ вот написал маленькую функцию для удалению пробелов .
 def f(a):
    z=''
    for s in a:
        if s!=' ':
            z=z+s
    return z
    
print(f("  aaa   "))
а подскажите как сделать так чтобы пробелы внутри текста сохранить. тоесть есть грубо говоря есть строка
 '           b bb          '
как получить
 'b bb'
в моей функции удаляются все пробелы. подскажите пожалуйста
FishHook
Если программа учебная и вы не хотите использовать готовую функцию strip принципиально, то как то так

 from itertools import dropwhile, takewhile
def trim(s, ch=" "):
    last = None
    for i, _ in takewhile(lambda x: x[1] == ch, enumerate(reversed(s))):
        last = i
    def _trim(s):
        for i in dropwhile(lambda x: x == ch, s):
            yield i
    if last:
        predicate = lambda x: x[0] < last
    else:
        predicate = lambda x: True
    res = takewhile(predicate, enumerate(_trim(s)))
    return "".join(x[1] for x in res)
print(trim("     v1444 11111           "))
print(trim("     v1444 11111"))
print(trim("v1444 11111           "))
print(trim("v1444 11111"))
DesSolo
 import re
x='           Очень    много длинных         и маленьких пробелов          '
string=' '.join(re.findall(r'\w+',x))
print(string)
Altair
Если необходимо удалить пробелы только в начале и конце строки, а внутри оставить, даже если их несколько подряд, то поможет такая функция:
 import re
 def strip_outside_space(line: str) -> str:
     return re.search(r'^\s*(.*?)\s*$', line).group(1)
 print(strip_outside_space('           with   s p a c e s          '))
 print(strip_outside_space('without spaces'))
Py_User
а подскажите как сделать так чтобы пробелы внутри текста сохранить.
просто пробежать по строке с начала, а затем с конца, запомнив позиции первых не пробельных символов. Дальше используем срез…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB