Seite 1 von 1

Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 13:19
von GEEN55
Hallo Zusammen,

ich möchte in einer Liste z.B.

Code: Alles auswählen

 list = [(32, 32), (31, 31), (31, 30), (31, 29), (31, 28), (31, 27), (31, 26), (32, 25), (33, 24), (34, 23), (35, 22), (36, 21), (37, 20), (38, 19), (39, 18), (40, 17), (41, 16), (42, 15), (43, 15), (44, 15), (45, 15), (46, 15), (47, 15), (48, 15), (49, 15)] 
alle Wert finden die folgenden Muster entsprechen (31,*) wobei * für jeden beliebigen Wert steht.

Code: Alles auswählen

 Pseudocode
 
 treffer_liste = (31, *) in list
 
 
Hat jemand eine Idee wie ich das Problem am einfachsten lösen kann?

Danke und Gruß,
GEEN

Re: Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 14:00
von __blackjack__
@GEEN55: Mit einer „list comprehension“:

Code: Alles auswählen

treffer_liste = [(a, b) for a, b in liste if a == 31]
Man sollte den Namen `list` nicht an was anderes binden als die eingebaute Funktion mit dem Namen.

Re: Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 14:04
von GEEN55
Suuuuuuuuuuuuper ... Danke für Deine tolle Hilfe!
Jetzt kann ich mich dem nächsten Problem stellen :-)

Re: Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 16:05
von klausi92
Wenn ich mich hier kurz anhängen dürfte, aht auch was mit einer Liste zu tun. Und zwar muss ich eine textdatei einlesen, bei der die Zahlen von 1 bis 100 jeweils in einer eigenen Zeile stehen.
fp = open("data1.txt", "r")
liste = (fp.readlines()) #jede zeile is ein listenelement
liste = [line.rstrip() for line in liste] #\n bei jedem listenelement entfernen
Das ist mein bisheriger Ansatz, ich soll nämlich die ganzen Zahlen in eine Liste bringen. Jetzt habe ich noch das Problem das vor und nach der Zahl jeweils noch das ' Zeichen steht. Wie kann ich dieses entfernen, sodass ich eine Liste mit nur noch den Werten habe?

Dazu soll ich auch noch den arithmetischen Mittelwert ermitteln. Hätte den Ansatz gehabt, dass ich die summe der Liste durch die Länge teile, aber das funktioniert ja aktuell aufgrund der ' nicht. Ansonsten müsste das dann ja funktionieren, oder?

Danke schonmal :)

Re: Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 16:10
von __deets__
Wenn da immer Anfuehrungszeichen dran sind, dann kannst du doch einfach die Zahl per slicing ( string[anfang:ende] ) rausholen. Und du musst sie dann natuerlich in ein Integer konvertieren.

Re: Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 16:31
von klausi92
Danke habs jetzt einfach mit ner Umwandlung gemacht, also die strings in ne einfache int zahl umgewandelt.
Der Mittelwert funktioniert dann.

Danke :)

Re: Suche in Liste mit Platzhalter

Verfasst: Freitag 18. Januar 2019, 21:51
von Sirius3
In der Datei sind also gar keine ', sondern nur in der Darstellung der Liste mit Strings.
Das wäre gut, wenn Du das auch so beschreiben würdest, sonst gibt es nur Verwirrung.
Dateien öffnet man mit dem with-Statement, die Klammern um fp.readlines() sind überflüssig und das ganze readlines noch dazu, weil man auch über File-Objekte direkt iterieren kann. Das rstrip ist auch überflüssig, weil man auch Strings mit Leeraum in Zahlen umwandeln kann:

Code: Alles auswählen

with open("data1.txt") as lines:
    numbers = [int(n) for n in lines]