[Python-de] Probleme mit listen

Christopher Arndt chris at chrisarndt.de
Fr Okt 25 19:47:07 CEST 2013


(ich ageb die Antwort áuf die Mail direkt an mich mal an die Liste)

On 25.10.2013 14:57, Goce F. wrote:
> Am 25.10.2013 13:42, schrieb Christopher Arndt:
>> kurze Antwort: vielleicht meintest du einfach:
>>
>> liste[0].append(...)
> 
> genau das meine ich aber ich bekomme nur ne Fehlermeldung.
> 
> AttributeError: 'int' object has no attribute 'append'

Die Fehlermeldung sagt doch schon, was los ist. Du versuchst an ein
int-Objekt mit .append() etwas anzuhängen. Das geht nicht. liste[0]
enthält also offensichtlich ein int-Objekt. Wenn du eine
mehrdimensionale (also eine verschachtelte) Liste haben willst, müsste
dort eine innere Liste sein. Dann könntest du an diese auch was anhängen.

>> l = []
>>
>> for i in range(3):
>>      l.append([])
>>      for j in range(3):
>>          l[i].append(j)
> 
> Erzeugst Du mit dem Code eine 3x3 oder 4x3 Matrix.

Ich erzeuge eine Liste, die drei Listen enthält, von denen wiederrum
jede drei (int) Elemente enthält.

> Zählt die Listendef.
> l = [] schon als eine Dimension, oder erst wenn Sie mit Werten gefüllt
> wird.

l = [] ist eine *leere* Liste, d.h. sie bekommt erst dann eine
Dimension, wenn man anfängt, sie mit Elementen zu füllen.

Noch einmal: Listen sind keine Arrays. Verabschiede dich von dieser
Assoziation.

> Mein Code ist folgender:
> 
> for x in range(0,x):
>         zelle.append(x)
>         for y in range(0,y):
>             zelle[x].append(y)

Da fehlt erst mal die Initianmlisierung von 'zelle'. Damit du die
append()-Methode von 'zelle' benutzen kannst, muss 'zelle' erstmal als
Liste vorhanden sein. 'zelle' entspricht in meinem Beispiel die leere
Liste in 'l.append([])'.

Außerdem verwendest du range() nicht richtig. Lies dir mal die
Dokumentation dazu mal durch, um herauszufinden, wie die Aufrufform mit
zwei Argumenten funktioniert (Für dein Beispiel brauchst du nur die Form
mit einem Argument, wie in meinem Beispiel).


Chris


Mehr Informationen über die Mailingliste python-de