gestern ist mir durch einen kleinen Fehler aufgefallen, dass es möglich ist einen Index zu ersetzen indem man ähnlich wie bei einem dictionary vorgeht:
Code: Alles auswählen
>>> liste = [1]
>>> liste[0] = 2
>>> liste
[2]
Code: Alles auswählen
>>> liste = [1]
>>> liste[0] = 2
>>> liste
[2]
Code: Alles auswählen
In [1]: a = range(5)
In [2]: a.__setitem__?
Type: method-wrapper
Base Class: <type 'method-wrapper'>
String Form: <method-wrapper '__setitem__' of list object at 0x22ae320>
Namespace: Interactive
Docstring:
x.__setitem__(i, y) <==> x[i]=y
In [3]: a.__setitem__(3, "x")
In [4]: a
Out[4]: [0, 1, 2, 'x', 4]
Ich glaub du hast es einfach übersehen...Gremlin hat geschrieben:Denn ich habe nichts "offizielles" darüber gefunden. Hab auch extra nochmal im Tutorial nachgesehen. Und bevor das jetzt irgendwas ist, was halt nur "zufällig" funktioniert...
Code: Alles auswählen
Unlike strings, which are immutable, it is possible to change individual elements of a list:
>>> a
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]
Kann man sagen: Ja, Slices haben eckige Klammern, aber noch dazu einen Doppelpunkt. Machen wir mal direkt weiter mit den Dunder Methods:Gremlin hat geschrieben:Ich weiß nicht so recht worauf du hinaus möchtest. Unter Slicing verstehe ich alles was mit eckigen Klammern auf Objekten angewendet werden kann. Ist das falsch?
Code: Alles auswählen
In [1]: a = range(5)
In [2]: a.__getslice__?
Type: method-wrapper
Base Class: <type 'method-wrapper'>
String Form: <method-wrapper '__getslice__' of list object at 0x220b320>
Namespace: Interactive
Docstring:
x.__getslice__(i, j) <==> x[i:j]
Use of negative indices is not supported.
In [3]: a.__setslice__?
Type: method-wrapper
Base Class: <type 'method-wrapper'>
String Form: <method-wrapper '__setslice__' of list object at 0x220b320>
Namespace: Interactive
Docstring:
x.__setslice__(i, j, y) <==> x[i:j]=y
Use of negative indices is not supported.