#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