Tag,
also es sieht so aus, dass ich keine Ahnung und keine Zeit hab es selbst herauszufinden bzw. nachzulesen. Ich veröffentliche meinen Programmcode absichtlich nicht, weiil er nicht besonders ausgereift ist und ich mich nicht vollkommen blamieren will!
Ich hab da also zwei Listen x,z. Wie kann ich also ein beliebiges Element dieser Listen entnehmen, und dann genau dieses Ellement löschen? Diee Liste heißt l, falls das was mit l. ist.
mfg
Listen, Zahlen entnehmen und löschen
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Niemand blamiert sich hier wenn er Fragen stellt, oder "nicht ausgereiften" Code zeigt!
Zu deiner Frage: Ich versteh sie nicht
. Du hast die Listen x und z und die Liste heisst l? Naja, so löscht man jedenfalls Elemente aus einer Liste:
del liste[i:j] -> Elemente mit den Indizes i bis j werden gelöscht.
liste.remove(x) -> Das erste Element mit dem Wert x wird gelöscht
Falls Du etwas anderes meinst, zeig mal ein Beispiel 
Gruß, mawe
Niemand blamiert sich hier wenn er Fragen stellt, oder "nicht ausgereiften" Code zeigt!
Zu deiner Frage: Ich versteh sie nicht

del liste[i:j] -> Elemente mit den Indizes i bis j werden gelöscht.
liste.remove(x) -> Das erste Element mit dem Wert x wird gelöscht
Code: Alles auswählen
x = ["a","b","c","d"]
del x[1:2] # -> x = ["a","c","d"]
x.remove("b") # -> selbes Ergebnis

Gruß, mawe
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi,
wenn nur ein Element gelöscht werden soll geht auch
Die von mawe gezeigte Form del x[a:b] bietet sich an, wenn mehrere aufeinanderfolgende Elemente der Liste gelöscht werden sollen, es werden dann alle Elemente vom Index a bis Index b-1 gelöscht.
Gruß
Dookie
wenn nur ein Element gelöscht werden soll geht auch
Code: Alles auswählen
del x[1]
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Hehe, das kanne ich noch gar nicht. Ich habs immer so gemacht.
Vielleicht hätte ich Python doch nicht ausschließlichlich durch Foren lesen und Fremden Code angucken lernen sollen
[/python]
Code: Alles auswählen
li = li[:index] + li[index+1:]

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Huhu, das ist abenteuerlich, aber es funktioniert... das gekört wohl zum Kapitel Obfuscating Python 
Nein, aber mal im Ernst, li.pop() steht auch in der Python Doku, da stehen viele gute Tricks drin
Interessant ob pop() so implementiert ist (das was ich schreibe ist sicher nichtmal Python Code *g*)?

Nein, aber mal im Ernst, li.pop() steht auch in der Python Doku, da stehen viele gute Tricks drin

Interessant ob pop() so implementiert ist (das was ich schreibe ist sicher nichtmal Python Code *g*)?
Code: Alles auswählen
def pop(self, index):
record = self[index]
self = self[:index] + self[index+1:]
return record
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
aber wie nehm ich nun ein Element aus der Liste, um dann das Element weiterzuverwenden. Ich glaub ich habs mal gewusst aber ich glaub 8ich habs verdrängt.
Der Code ist noch nicht mal halbwegs soweit, deswegen scheint es mir unmöglich den code zu posten.
.
Der Code ist noch nicht mal halbwegs soweit, deswegen scheint es mir unmöglich den code zu posten.
.
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Gruß, mawe
Code: Alles auswählen
liste = ["a","b","c"]
x = liste.pop(1)
print x
Code: Alles auswählen
Traceback (most recent call last):
File "C:\PYTHON23\lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
exec codeObject in __main__.__dict__
File "F:\Testscrip.py", line 5, in ?
print x
AttributeError: 'tuple' object has no attribute 'pop'
>>>
Code: Alles auswählen
x = [2,5,8,44,6,22,11,62,29]
y = [84,3,24,5,654,77,48,68]
l=x,y
x = l.pop(min(l))
print x
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Mit l = x,y hast Du ein Tupel erzeugt, und das kennt kein pop (steht in der Fehlermeldung
).
Ich versteh immer noch nicht was genau Du machen willst. Sollen von x und y jeweils die kleinsten Werte gelöscht werden? Schreib doch mal was das Ergebnis sein soll.
Gruß, mawe
Mit l = x,y hast Du ein Tupel erzeugt, und das kennt kein pop (steht in der Fehlermeldung

Ich versteh immer noch nicht was genau Du machen willst. Sollen von x und y jeweils die kleinsten Werte gelöscht werden? Schreib doch mal was das Ergebnis sein soll.
Gruß, mawe
Das Ergebnis? Ja ist mir nicht klar, denn es ist nur eiin Teil des ganzen Projekts. Wie mach ich denn sonst, dass zwei Variablen, also die zwei Listen, auf eine Variablee übertragen werden?
Ich wollt nur, dass irgenteins ode das erste oder so aus den Listen genommen wird, damit was gemacht wird und das Element dann gelöscht wird.
Ich wollt nur, dass irgenteins ode das erste oder so aus den Listen genommen wird, damit was gemacht wird und das Element dann gelöscht wird.
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Mit "Ergebnis zeigen" hab ich gemeint: was sollte deiner Meinung nach der Code den Du gepostet hast bewirken (also was sollte in x stehen)
. Na gut, Du willst also von beiden Listen das z.B. erste Element:
Jetzt kannst Du mit newx und newy weiterarbeiten. Wenn Du's unbedingt mit deinem l machen willst:
Hilft das?
Gruß, mawe
Mit "Ergebnis zeigen" hab ich gemeint: was sollte deiner Meinung nach der Code den Du gepostet hast bewirken (also was sollte in x stehen)

Code: Alles auswählen
x = [4,5,6]
y = [7,8,9]
newx = x.pop(0)
newy = y.pop(0)
Code: Alles auswählen
l = x,y
newx, newy = [i.pop(0) for i in l]
Gruß, mawe