2013-05-07 4 views
-4

У меня есть строка в PythonИзменение строки в Python

name="My name is John" 

Я хочу, чтобы заменить имя с:

name ="My name is JohnSmith" 

кто может помочь ??

+1

Обратите внимание, что вы не можете изменить строку в Python, строки неизменяемы. Вы можете связать 'name' с * совершенно другой * строкой, в которой новая строка имеет желаемое содержимое. –

+1

Если вы хотите заменить имя на другую строку, вы уже сделали это в своем примере. :) – dansalmo

ответ

2

Вы не можете изменить строку в python, поскольку они неизменяемы, поэтому изменение строки всегда приводит к новой строке.

Для примера вы можете использовать:

конкатенации строк:

>>> name = "My name is John" 
>>> name += "Smith"  #equivalent to name = name + "Smith" 
>>> name 
'My name is JohnSmith' 

или строка форматирования:

>>> name = "My name is John" 
>>> name = "{0}{1}".format(name,"Smith") 
>>> name 
'My name is JohnSmith' 

Для конкатенации список многих пунктов предпочитают str.join:

>>> name="My name is John" 
>>> name = "".join((name,"Smith","foo","bar","spam")) 
>>> name 
'My name is JohnSmithfoobarspam' 
+0

Вы должны перефразировать его: «Для объединения списка многих элементов», предпочитайте 'str.join', для двух элементов,' "" .join ((x, y)) '- просто уродливая версия' x + y' – jamylak

-1
str = "My name is John" 
str = str.replace("John","JohnSmith") 
+3

не называйте свою строку 'str',' str' является встроенным – jamylak

+0

да, я не должен быть, bt это сработало. – manoj

+2

Теперь попробуйте 'print str (1)' – jamylak

Смежные вопросы