Seite 1 von 1
Position eines Elements in einem großen String ermitteln
Verfasst: Dienstag 8. April 2008, 21:54
von timo_81
Moin Leute,
ich habe von einem OptionMenu einen Rückgabewert den ich gerne in einem String suchen möchte um dann die Position auszugeben
Hier mein Ansatz:
Code: Alles auswählen
#Routine wenn Adresse auswählen Knopf gedrückt wurde
def load_adress():
wahl=item.get() #Element aus einem OptionMenu
suchwort = re.compile(wahl) #wird benutzt
for pos in adressen_namen: #um die Position innerhalb
if re.match(suchwort, pos): #einer Liste zu ermitteln
print pos
# Fehler: suchwort is not defined
Verfasst: Dienstag 8. April 2008, 21:57
von sea-live
Verfasst: Dienstag 8. April 2008, 22:33
von timo_81
hi ,
danke für die schnelle Antwort.
Leider kommt in dem re.match teil immernoch
suchwort nicht definiert
Verfasst: Mittwoch 9. April 2008, 08:23
von Rebecca
Hab' deinen Code nur schnell ueberflogen, aber brauchst du dafuer wirklich Regular Expressions? Ob etwas in einem String enthalten ist, kannst du auch so rausfinden:
Code: Alles auswählen
>>> "hallo" in "hallo welt"
True
>>> "hi" in "hallo welt"
False
Verfasst: Mittwoch 9. April 2008, 08:37
von jens
Was ist "adressen_namen" für ein Typ?
Nach dem Titel zu urteilen ist es find() was du suchst. Siehe auch:
http://docs.python.org/dev/library/stdt ... l#str.find
Verfasst: Mittwoch 9. April 2008, 10:29
von timo_81
Hi,
danke ja das mit 'in' war richtig.
Bin eben noch ein noob in python.
Sorry für die profane Aufgabenstellung
Bis die Tage
Verfasst: Mittwoch 9. April 2008, 12:28
von sea-live
wichtig ist das es geht oder etw nicht !
Verfasst: Mittwoch 9. April 2008, 14:28
von timo_81
Hi,
ja es geht vielen Dank.
Ich hätte noch eine kleine Frage, zu der ich in der Suche nicht das Richtige
gefunden habe:
Ich habe in der Variable length eine Zahl gespeichert die angibt wieviel
Label zur Laufzeit generiert werden sollen
Code: Alles auswählen
#Dynamische Adresserzeugung
k=-1
for k in range(length):#erstelle soviele labels wie es ermittelte elemente gibt
lbl_addy[k]= Label(vorschaufenster,text=final[k])
lbl_addy[k]=Label.pack()
Ich würde also gerne zur Laufzeit Labels erstellten, leider kommt der Fehler 'lbl_addy' is not defined.
Ich wollte nicht extra ein neuen Thread aufmachen.
Hat jemand eine Idee?
Verfasst: Mittwoch 9. April 2008, 14:37
von EyDu
Code: Alles auswählen
#Dynamische Adresserzeugung
#erstelle soviele labels wie es ermittelte elemente gibt
lbl_addy = []
for k in range(length):
lbl_addy.append(Label(vorschaufenster,text=final[k]))
lbl_addy[-1].pack()
Für die Frage hätte sich ein neuer Thread schon gelohnt.
Verfasst: Mittwoch 9. April 2008, 15:06
von timo_81
Hi,
Dankeschön!!!
Es funktioniert hervorragend.
Mann, ihr glaubt gar nicht wie lange ich daran schon rumgemacht habe
In diesem Sinne
Regenrinne

Verfasst: Mittwoch 9. April 2008, 21:08
von BlackJack
Wobei hier `k` eigentlich gar nicht gebraucht wird wenn `final` eine Sequenz ist und ``len(final) == length`` gilt. In dem Fall bräuchte man auch `length` nicht.
Code: Alles auswählen
address_labels = list()
for text in final:
label = Label(vorschaufenster, text=text)
label.pack()
address_labels.append(label)