Python — Я пытаюсь создать функцию, которая добавляла бы «*» между каждой буквой

#python #function

Вопрос:

У меня есть это:

 def f(message):
    l = []
    for c in message:
     l.append(c)
     l.append('*')
    return "".join(l)
 

Это работает, но как мне сделать так, чтобы в конце не добавлялось»*». Я хочу, чтобы это было только между введенным словом. Я новичок в python и просто пробовал что-то новое.

Ответ №1:

Может быть, вы можете попробовать это. Он использует понимание списка

 input_str = 'dog'

def f(x):
    return '*'.join(x)

print(f('dog')) #ouput d*o*g
print(f(input_str)) #ouput d*o*g


 

Комментарии:

1. Нет необходимости преобразовывать строку в список, строки уже можно повторять. '*'.join(x) работает нормально.

2. Вы правы @MarkRansom … Я изменю свой ответ на ваш комментарий

Ответ №2:

Ну, технически вы могли бы просто разрезать возвращенную строку, отрезав последнюю астрикс.

 message="dog"
def f(message):
    l = []   
    for c in message:              
        l.append(c)              
        l.append('*')         
    return "".join(l[:-1])
print(f(message))
 

таким образом, он возвращается

 d*o*g