Hallo alle,
eine Frage:
Wieso wird hier gesagt, dass Strings bzw tuples unveränderbar sind?
http://www.rg16.asn-wien.ac.at/~python/ ... /kap09.htm
Ich meine ein "Hello World" kann ich genauso ändern wie ein Hello World in einer Liste ---> ["H","e","l"...]
Kann mich vielleicht jemand aufklären.
Mfg
Anfänger Frage
Hallo.
Mal zum nachdenken:
Du muss zwischen "etwas an einen Namen binden" und "verändern" unterscheiden.
Sebastian
Mal zum nachdenken:
Code: Alles auswählen
>>> spam = "spam"
>>> eggs = spam
>>> spam = "foo"
>>> spam
'foo'
>>> eggs
'spam'
>>>
>>> baz = [1,2,3]
>>> bar = baz
>>> baz.append(4)
>>> baz
[1, 2, 3, 4]
>>> bar
[1, 2, 3, 4]
Sebastian
Das Leben ist wie ein Tennisball.
@USER67: Du kannst Zeichenketten und Tupel nicht verändern, insbesondere nicht wie eine Liste mit Zeichenketten:
Das wird dort also gesagt weil es den Tatsachen entspricht.
Code: Alles auswählen
In [11]: a = 'Hello World'
In [12]: a[1] = 'x'
---------------------------------------------------------------------------
<type 'exceptions.TypeError'> Traceback (most recent call last)
/home/bj/<ipython console> in <module>()
<type 'exceptions.TypeError'>: 'str' object does not support item assignment
In [13]: a = (1, 2, 3)
In [14]: a[0] = 42
---------------------------------------------------------------------------
<type 'exceptions.TypeError'> Traceback (most recent call last)
/home/bj/<ipython console> in <module>()
<type 'exceptions.TypeError'>: 'tuple' object does not support item assignment
@USER67: Nun ja, streng genommen sind auf einer Zeichenkette auch keine Operationen möglich. ".replace()" verändert so wie alle Methoden für Zeichenketten ja nicht die Zeichenkette selbst, sondern gibt eine neue Zeichenkette mit den entsprechenden Veränderungen zurück.