Seite 1 von 1
wie "neues Tuple" = "altes Tuple" + &qu
Verfasst: Dienstag 8. Juli 2008, 17:20
von PaulM
Hallo,
mal eine kleine Anfänger-Frage zu Tuples
habe hier ein Tuple
t_old: ('x1','x2')
und suche eine Möglichkeit wie ich "anhängen" kann
z.B. 'pp' anhängen, Endresultat soll dann so aussehen
t_new: ('x1','x2','pp')
hab schon einiges probiert, aber nix passendes gefunden
habt ihr eine Idee ?
(PS: es muss wirklich ein Tuple und keine Liste sein, da ich es als
key in einem Dictionary verwenden möchte)
Gruß,
Paule
Verfasst: Dienstag 8. Juli 2008, 17:35
von Karl
1 You can't add elements to a tuple. Tuples have no append or extend method.
2 You can't remove elements from a tuple. Tuples have no remove or pop method.
3 You can't find elements in a tuple. Tuples have no index method.
4 You can, however, use in to see if an element exists in the tuple.
Du kannst ein völlig neues Tupel erstellen und die Werte des alten Tupels mit den neuen Werten in dieses speichern.
Ist aber eben einiges umständlicher als bei Listen

Tupel soll man nicht verändern können.
Verfasst: Dienstag 8. Juli 2008, 17:37
von DasIch
Meinst du sowas?
Code: Alles auswählen
>>> t_old = ('x1', 'x2')
>>> temp_list = []
>>> for element in t_old:
... temp_list.append(element)
...
>>> temp_list.append('pp')
>>> tuple(temp_list)
('x1', 'x2', 'pp')
>>>
Verfasst: Dienstag 8. Juli 2008, 17:38
von numerix
Code: Alles auswählen
>>> a = 1,2
>>> a
(1, 2)
>>> a = a+(3,)
>>> a
(1, 2, 3)
Verfasst: Dienstag 8. Juli 2008, 17:39
von BlackVivi
Code: Alles auswählen
In [8]: spam = tuple(list((1,2)) + [3])
In [9]: spam
Out[9]: (1, 2, 3)
Wobei man sich über die Performance davon streiten könnte ;P Du solltest zuerst mit einer Liste arbeiten und dann ganz am Ende, wenn du's als Key verwenden willst, in einen Tuple umwandeln.
Edit: Mhm, Tuple kann man auch so zusammenhängen? Was gelernt... naja, würde trotzdem mit Listen arbeiten.
Verfasst: Dienstag 8. Juli 2008, 22:58
von Michael Schneider
Hallo PaulM,
ich habe noch nicht verstanden, warum man eine Liste (also ein Objekt mit Listenfunktionalität) als Schlüssel in einem Dictionary verwenden wollen könnte. Möchtest Du nur eine Zuordnung der Liste zu einem bestimmten Wert umsetzen? Dann kannst Du auch eine Liste oder ein Dict von Tupels (Liste, Wert) verwenden.
Du kannst Dir auch eine eigene Klasse schreiben, die die Funktionalität einer Sequenz oder Auflistung implementiert.
Wie numerix schrieb kann man Tuples "addieren" (verketten) und ein 1-Tupel besteht aus Klammern mit Wert und Komma -> (1,)
Ein Problem ist immer nur so kompliziert, wie seine Randbedingungen es einschränken. Wie sieht denn die Aufgabe insgesamt aus??
Michel
Verfasst: Mittwoch 9. Juli 2008, 18:58
von PaulM
.. juuupi, funktioniert prima ..
mache es genau so wie von euch vorgeschlagen:
- Tuple in Liste konvertieren
- neues Element an Liste anhaengen
- Liste in neues, modifiziertes Tuple zurueckkonvertieren
insbesondere der 3.Schritt, das "tuple(meine_liste)"
was mir neu...
nochmals vielen Dank !
Paule
Verfasst: Mittwoch 9. Juli 2008, 20:35
von jens
@PaulM: Die Frage ist, warum verwendest du überhaupt tuple und nicht gleich überall eine Liste? Wäre wesentlich einfacher.
Verfasst: Mittwoch 9. Juli 2008, 21:05
von Michael Schneider
Hallo PaulM!
PaulM hat geschrieben:
mache es genau so wie von euch vorgeschlagen:
- Tuple in Liste konvertieren
- neues Element an Liste anhaengen
- Liste in neues, modifiziertes Tuple zurueckkonvertieren
Warum konvertieren?? WIR haben doch ein einfaches Addieren vorgeschlagen:
Du solltest Dir nur bewusst sein, dass Du dabei (wie auch beim Konvertieren) immer ein neues Tupel erhältst, das Du dann zwangsläufig auch explizit in Dein Dictionary einbauen musst!
Michel