Форум сайта python.su
Написать ф-цию, которая принимает строку, и возвращает список строк, которые являются составными частями исходной строки, разделенными там, где стоит пробел. В полученных частях должны отсутствовать пробелы-разделители. Пустых строк в списке быть не должно. Пример:
f(“abc a b”) возвращает
f(“zz zz”) возвращает
пытался вот так
def f(s): r = [] for i in s: if i != " ": r.append(i) return r print(f("abc a b"))
Офлайн
Офлайн
izekiaсплит нельзя использовать по условиям задачи, нужно все написать через операции ветвления if /elif
split
Офлайн
def split_str(s): start = 0 for i, l in enumerate(s): if l == ' ': if i > start: yield s[start:i] start = i + 1 if i >= start: yield s[start:] s = 'Вот с ифами и ветвлением' print(list(split_str(s)))
Офлайн
izekiaспасибо
def split_str(s):
start = 0
for i, l in enumerate(s):
if l == ‘ ’:
if i > start:
yield s
start = i + 1
if i >= start:
yield s
s = ‘Вот с ифами и ветвлением’
print(list(split_str(s)))
Офлайн
>>> def f(s): ... out = [] ... word = '' ... for c in s: ... if c == ' ': ... if word: ... out.append(word) ... word = '' ... else: ... word += c ... if word: ... out.append(word) ... return out ... >>> print(f(' abc a b ')) ['abc', 'a', 'b'] >>>
Офлайн
py.user.nextспасибо
Офлайн