Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 4, 2016 15:15:05

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

Написать ф-цию, которая принимает строку, и возвращает список строк, которые являются составными частями исходной строки, разделенными там, где стоит пробел. В полученных частях должны отсутствовать пробелы-разделители. Пустых строк в списке быть не должно. Пример:
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"))
но получается не то что нужно

Офлайн

#2 Ноя. 4, 2016 16:04:35

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

помогите с решением задачи

Офлайн

#3 Ноя. 4, 2016 17:14:21

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

izekia
split
сплит нельзя использовать по условиям задачи, нужно все написать через операции ветвления if /elif

Офлайн

#4 Ноя. 4, 2016 18:38:34

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

помогите с решением задачи

 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)))



Офлайн

#5 Ноя. 4, 2016 23:14:45

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

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)))
спасибо

Офлайн

#6 Ноя. 5, 2016 02:32:12

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9891
Репутация: +  854  -
Профиль   Отправить e-mail  

помогите с решением задачи

  
>>> 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']
>>>



Офлайн

#7 Ноя. 15, 2016 14:38:54

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

py.user.next
спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version