AttributeError: ‘str’ object heeft geen attribuut ‘append’

Waarom wordt myList[1]beschouwd als een 'str'-object? mList[1]retourneert het eerste item in de lijst 'from form'maar ik kan niet toevoegen aan item 1 in de lijst myList. Bedankt.

Bewerken01:

@pyfunc: Bedankt voor de uitleg; nu begrijp ik het.

Ik heb een lijst met lijsten nodig; dus ‘van formulier’ zou een lijst moeten zijn. Ik heb dit gedaan (corrigeer dit als dit niet op de juiste manier is):

>>> 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']]
>>> 

Antwoord 1, autoriteit 100%

myList[1] is een element van myList en het type is string.

myList[1] is str, je kunt er niet aan toevoegen.
myList is een lijst die u eraan had moeten toevoegen.

>>> 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'
>>> 

Antwoord 2, autoriteit 30%

Als u een waarde aan myList wilt toevoegen, gebruikt u myList.append(s).

Tekenreeksen zijn onveranderlijk — je kunt ze niet toevoegen.


Antwoord 3, autoriteit 9%

Waarom wordt myList[1] beschouwd als een ‘str’-object?

Omdat het een string is. Wat is 'from form'nog meer, zo niet een string? (Eigenlijk zijn strings ook reeksen, dwz ze kunnen ook worden geïndexeerd, gesegmenteerd, herhaald, enz. – maar dat maakt deel uit van de klasse stren maakt er geen lijst of zoiets van).

mList[1]retourneert het eerste item in de lijst 'from form'

Als je bedoelt dat myList'from form'is, nee dat is het niet!!! Het tweede(indexering begint bij 0) elementis 'from form'. Dat is een GROOT verschil. Het is het verschil tussen een huis en een persoon.

Bovendien hoeft myListgeen listte zijn uit uw korte codevoorbeeld – het kan alles zijn dat 1als index accepteert – een dictaat met 1 als index, een lijst, een tuple, de meeste andere reeksen, enz. Maar dat doet er niet toe.

maar ik kan niet toevoegen aan item 1 in de lijst myList

Natuurlijk niet, want het is een string en je kunt niet aan een string toevoegen. String zijn onveranderlijk. U kunt strings samenvoegen (zoals in “er is een nieuw object dat uit deze twee bestaat”). Maar je kunt ze niet append(zoals in, “dit specifieke object heeft nu dit aan het einde”).


Antwoord 4

Wat u probeert te doen, is aanvullende informatie toevoegen aan elk item in de lijst die u al hebt gemaakt, dus

   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  

Antwoord 5

Dit is een eenvoudig programma dat APPEND (‘T’) aan de lijst toont.
n = [‘f’, ‘g’, ‘h’, ‘i’, ‘k’]

for i in range(1):
    temp=[]
    temp.append(n[-2:])
    temp.append('t')
    print(temp)

OUTPUT: [[‘I’, ‘K’], ‘T’]


Antwoord 6

In plaats daarvan kunt u de +=syntaxis gebruiken:

a = "prin"
a.append("T") #doesn't wok
a += "t" #works

Other episodes