복붙노트

[PYTHON] AttributeError : 'str'객체에 'append'속성이 없습니다.

PYTHON

AttributeError : 'str'객체에 'append'속성이 없습니다.

>>> myList[1]
'from form'
>>> myList[1].append(s)

Traceback (most recent call last):
  File "<pyshell#144>", line 1, in <module>
    myList[1].append(s)
AttributeError: 'str' object has no attribute 'append'
>>>

myList [1]가 'str'객체로 간주되는 이유는 무엇입니까? mList [1]은 'form from'목록의 첫 번째 항목을 반환하지만 myList 목록의 항목 1에는 추가 할 수 없습니다. 고맙습니다.

Edit01 :

@pyfunc : 설명 해줘서 고마워. 지금은 이해.

목록 목록이 필요합니다. 그래서 'from form'은 목록이어야합니다. 나는 이것을했다. (올바른 방법이 아니라면 이것을 수정해라) :

>>> myList
[1, 'from form', [1, 2, 't']]
>>> s = myList[1]
>>> s
'from form'
>>> s = [myList[1]]
>>> s
['from form']
>>> myList[1] = s
>>> myList
[1, ['from form'], [1, 2, 't']]
>>> 

해결법

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

    1.myList [1]은 myList의 요소이고 type은 string입니다.

    myList [1]은 myList의 요소이고 type은 string입니다.

    myList [1]은 (는) str입니다. 추가 할 수 없습니다. myList가 목록이므로 추가해야합니다.

    >>> myList = [1, 'from form', [1,2]]
    >>> myList[1]
    'from form'
    >>> myList[2]
    [1, 2]
    >>> myList[2].append('t')
    >>> myList
    [1, 'from form', [1, 2, 't']]
    >>> myList[1].append('t')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'str' object has no attribute 'append'
    >>> 
    
  2. ==============================

    2.myList에 값을 추가하려면 myList.append (s)를 사용하십시오.

    myList에 값을 추가하려면 myList.append (s)를 사용하십시오.

    문자열은 변경할 수 없으므로 추가 할 수 없습니다.

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

    3.왜냐하면 그것은 문자열입니다. 문자열이 아니라면 '폼에서'무엇입니까? (실제로 문자열은 시퀀스이기도합니다. 즉, 인덱스 처리, 슬라이스 처리, 반복 처리 등을 할 수 있습니다.하지만 이는 str 클래스의 일부이므로 목록이나 다른 것으로 만들지는 않습니다).

    왜냐하면 그것은 문자열입니다. 문자열이 아니라면 '폼에서'무엇입니까? (실제로 문자열은 시퀀스이기도합니다. 즉, 인덱스 처리, 슬라이스 처리, 반복 처리 등을 할 수 있습니다.하지만 이는 str 클래스의 일부이므로 목록이나 다른 것으로 만들지는 않습니다).

    myList가 '양식'이라는 것을 의미한다면, 그것은 아닙니다! 두 번째 (인덱싱은 0에서 시작) 요소는 'from form'입니다. 그것은 큰 차이입니다. 그것은 집과 사람의 차이입니다.

    또한 myList는 짧은 코드 샘플의 목록 일 필요는 없습니다. 1을 인덱스로 받아들이는 것, 즉 인덱스가 1 인 인덱스, 목록, 튜플, 대부분의 다른 시퀀스 등을 사용할 수 있습니다.하지만 그와는 관련이 없습니다.

    물론 문자열이 아니기 때문에 문자열에 추가 할 수 없습니다. 문자열은 변경할 수 없습니다. 당신은 ( "이 두 개의 객체로 구성된 새로운 객체가있다") 문자열을 연결할 수 있습니다. 그러나 당신은 추가 할 수 없습니다 ( "이 특정 객체는 이제 결국이 있습니다").

  4. ==============================

    4.당신이하려는 것은 당신이 이미 만든 목록의 각 항목에 정보를 추가하는 것입니다.

    당신이하려는 것은 당신이 이미 만든 목록의 각 항목에 정보를 추가하는 것입니다.

        alist[ 'from form', 'stuff 2', 'stuff 3']
    
        for j in range( 0,len[alist]):
            temp= []
            temp.append(alist[j]) # alist[0] is 'from form' 
            temp.append('t') # slot for first piece of data 't'
            temp.append('-') # slot for second piece of data
    
        blist.append(temp)      # will be alist with 2 additional fields for extra stuff assocated with each item in alist  
    
  5. from https://stackoverflow.com/questions/4005796/attributeerror-str-object-has-no-attribute-append by cc-by-sa and MIT license