вставка значения через каждую букву в строке -python

#python

#python

Вопрос:

Возникли некоторые проблемы при попытке решить это. Цель состоит в том, чтобы вставить значение n в каждую вторую букву в предоставленной строке a .

 def insert(a,n):
    k = n
    P = 1
    res = list(''.join(i   k * (P%1==0)
    for P, i in enumerate(a)))
    return str(res)
insert('My name is Pamela', 'x')
  

получаемый мной результат выглядит следующим образом

 ['M', 'x', 'y', 'x', ' ', 'x', 'n', 'x', 'a', 'x', 'm', 'x', 'e', 'x', ' ', 'x', 'i', 'x', 's', 'x', ' ', 'x', 'P', 'x', 'a', 'x', 'm', 'x', 'e', 'x', 'l', 'x', 'a', 'x']
  

Как я могу сделать так, чтобы это было одной строкой вместо разных строк?

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

1. Почему вы создаете список из выходных join данных, который является строкой? Я бы рекомендовал посмотреть базовый учебник или через ваш учебный материал, вы используете многие функции и структуру таким образом, что предполагаете, что вы не справляетесь с их использованием и назначением.

Ответ №1:

Вы можете просто использовать ''.join :

 def insert(a, n):
    return ''.join(l   n for l in a)

print(insert('My name is Pamela', 'x'))
  

Вывод:

 Mxyx xnxaxmxex xixsx xPxaxmxexlxax
  

Ответ №2:

Вот более простое решение:

 def insert(a, n):
    res = ''.join(x   y for x, y in zip(a, n * len(a)))
    return res
print(insert('My name is Pamela', 'x'))
  

Результат:

 Mxyx xnxaxmxex xixsx xPxaxmxexlxax
  

n * len(a) создает строку nnnn... с той же длиной, a что и amp; zip превращает две строки в пары по одному символу из каждой строки. Затем join превращает это в строку.

Ответ №3:

Попробуйте:

 fin = ""
return fin.join(res)
  

Это должно объединить строку.

ВОЗВРАТ:

 Mxyx xnxaxmxex xixsx xPxaxmxexlxax
  

Ответ №4:

Если вы хотите вставить 'x' между каждыми 2 буквами a , но не в самом конце, то это то, что вы хотите написать :

 def insert(a, n):
    return n.join(a)

print(insert('My name is Pamela', 'x')) 
#Mxyx xnxaxmxex xixsx xPxaxmxexlxa