Объект 'str' не поддерживает назначение элемента в Python
Я хотел бы прочитать некоторые символы из строки и поместить ее в другую строку (как в C).
Итак, мой код выглядит ниже
import string
import re
str = "Hello World"
j = 0
srr = ""
for i in str:
srr[j] = i #'str' object does not support item assignment
j = j + 1
print (srr)
В C код может быть
i = j = 0;
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
Как я могу реализовать то же самое в Python?
Ответы
Ответ 1
В Python строки неизменяемы, поэтому вы не можете изменить их символы на месте.
Вы можете, однако, сделать следующее:
for i in str:
srr += i
Причины этого: это ярлык для:
for i in str:
srr = srr + i
Приведенная выше процедура создает новую строку с каждой итерацией и сохраняет ссылку на эту новую строку в srr
.
Ответ 2
Другие ответы верны, но вы можете, конечно, сделать что-то вроде:
>>> str1 = "mystring"
>>> list1 = list(str1)
>>> list1[5] = 'u'
>>> str1 = ''.join(list1)
>>> print(str1)
mystrung
>>> type(str1)
<type 'str'>
если вы действительно этого хотите.
Ответ 3
строки Python являются неизменными, поэтому то, что вы пытаетесь сделать на C, будет просто невозможно в python. Вам нужно будет создать новую строку.
Я хотел бы прочитать некоторые символы из строки и поместить ее в другая строка.
Затем используйте строковый фрагмент:
>>> s1 = 'Hello world!!'
>>> s2 = s1[6:12]
>>> print s2
world!
Ответ 4
Как упоминалось выше, строки в Python неизменяемы (вы не можете изменить их на месте).
То, что вы пытаетесь сделать, может быть сделано разными способами:
# Copy the string
foo = 'Hello'
bar = foo
# Create a new string by joining all characters of the old string
new_string = ''.join(c for c in oldstring)
# Slice and copy
new_string = oldstring[:]
Ответ 5
Как насчет этого решения:
str = "Hello World" (как указано в задаче)
srr = str + ""
Ответ 6
Привет, вам следует попробовать метод разделения строк:
i = "Hello world"
output = i.split()
j = 'is not enough'
print 'The', output[1], j