Seite 1 von 1

Ich dreh am Rad

Verfasst: Dienstag 24. Februar 2015, 07:54
von Knuffi
Guten Morgen zusammen,

ich habe seit stunden versucht eine Zahl in einen Array einzulesen, es wird immer mit der Meldung( !int! object does not support item assignment",aus dem Forum habe ich einige Lösungsvorschläge ausprobiert. Leider ohne grossen Erfolg. Wer kann ir weiterhelfen

Code: Alles auswählen

a = [0,0,0,0,0,0,0]
d = 17
for r in range(8):
 b = d + r
 x = bus.read_byte_data(0x50,b)
 a[r] = x

Re: Ich dreh am Rad

Verfasst: Dienstag 24. Februar 2015, 08:10
von Sirius3
@Knuffi: der gezeigte Code kann diesen Fehler nicht haben. Er wirft einen IndexError, wenn r 7 ist, die Liste aber nur 7 Elemente hat. Zeig Deinen richtigen Code inklusive Traceback.

Übrigens erzeugt man auch keine mit 0 gefüllte Liste um sie dann mit Werten zu belegen, sondern erzeugt eine leere Liste, um dann Elemente anzuhängen:

Code: Alles auswählen

a = []
for b in range(17, 17+8):
    a.append(bus.read_byte_data(0x50, b))

Re: Ich dreh am Rad

Verfasst: Dienstag 24. Februar 2015, 11:30
von mutetella
Oder als List Comprehension:

Code: Alles auswählen

a = [bus.read_byte_data(0x50, b) for b in range(17, 17+8)]
mutetella

Re: Ich dreh am Rad

Verfasst: Dienstag 24. Februar 2015, 15:40
von Knuffi
Hallo Sirius3, hallo Mutella,

herzlichen danke für die Hilfe. Ich bin halt noch Anfänger in Python.
Gruß
Knuffi