복붙노트

[PYTHON] 'str'객체가 Python에서 항목 할당을 지원하지 않습니다.

PYTHON

'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++];
}

파이썬에서 어떻게 구현할 수 있습니까?

해결법

  1. ==============================

    1.파이썬에서는 문자열이 변경되지 않기 때문에 문자를 제 자리에서 변경할 수 없습니다.

    파이썬에서는 문자열이 변경되지 않기 때문에 문자를 제 자리에서 변경할 수 없습니다.

    그러나 다음을 수행 할 수 있습니다.

    for i in str:
        srr += i
    

    이 작동 원리는 다음과 같은 지름길입니다.

    for i in str:
        srr = srr + i
    

    위의 코드는 각 반복마다 새 문자열을 만들고 srr에 새 문자열에 대한 참조를 저장합니다.

  2. ==============================

    2.다른 대답은 정확하지만 물론 다음과 같이 할 수 있습니다 :

    다른 대답은 정확하지만 물론 다음과 같이 할 수 있습니다 :

    >>> str1 = "mystring"
    >>> list1 = list(str1)
    >>> list1[5] = 'u'
    >>> str1 = ''.join(list1)
    >>> print(str1)
    mystrung
    >>> type(str1)
    <type 'str'>
    

    네가 정말로 원한다면.

  3. ==============================

    3.파이썬 문자열은 불변이므로 C에서 무엇을하려고하는지는 파이썬에서는 불가능할 것입니다. 새 문자열을 만들어야합니다.

    파이썬 문자열은 불변이므로 C에서 무엇을하려고하는지는 파이썬에서는 불가능할 것입니다. 새 문자열을 만들어야합니다.

    그런 다음 문자열 슬라이스를 사용합니다.

    >>> s1 = 'Hello world!!'
    >>> s2 = s1[6:12]
    >>> print s2
    world!
    
  4. ==============================

    4.aix에서 언급했듯이 - 파이썬의 문자열은 변경할 수 없습니다 (변경할 수 없습니다).

    aix에서 언급했듯이 - 파이썬의 문자열은 변경할 수 없습니다 (변경할 수 없습니다).

    당신이하려는 것은 여러 가지 방법으로 할 수 있습니다 :

    # 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. ==============================

    5.특정 문자를 다른 문자로 바꾸려면 다른 방법을 사용하십시오.

    특정 문자를 다른 문자로 바꾸려면 다른 방법을 사용하십시오.

    def swap(input_string):
       if len(input_string) == 0:
         return input_string
       if input_string[0] == "x":
         return "y" + swap(input_string[1:])
       else:
         return input_string[0] + swap(input_string[1:])
    
  6. ==============================

    6.이 솔루션은 어떻습니까?

    이 솔루션은 어떻습니까?

    str = "Hello World"(문제에서 설명한대로) srr = str + ""

  7. ==============================

    7.안녕하세요 당신은 문자열 분할 방법을 시도해야합니다 :

    안녕하세요 당신은 문자열 분할 방법을 시도해야합니다 :

    i = "Hello world"
    output = i.split()
    
    j = 'is not enough'
    
    print 'The', output[1], j
    
  8. from https://stackoverflow.com/questions/10631473/str-object-does-not-support-item-assignment-in-python by cc-by-sa and MIT license