Variablen nummerieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
makuee
User
Beiträge: 11
Registriert: Montag 15. März 2010, 11:20

also nochmal,

das was ihr da hinschreibt, funktioniert nicht. ganz so dämlich bin ich nun nicht. aus dem grund schreib ich auch in dieses forum. habt ihr denn schon mal mit der flickr api gearbeitet, dann probiert es aus und schreibt nicht irgendwelche array kommandos nieder.

man man man und das zum montag
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

- Du stellst eine Frage, von der hier mehrere meinen, dass sie nicht zielführend ist.
- Du gehst nicht auf Rückfragen ein.
- Du stellst anschließend die Frage, wie man auf das zweite Element einer Liste zugreifen kann. Dieses ist Basiswissen und die erste Frage läßt ebenfalls vermuten, dass Basiswissen fehlt, weshalb wir Dich auf das Tutorial verwiesen haben. Das ist keine Arroganz von unserer Seite, sondern soll erreichen, das wir auf einem Niveau weitermachen können, auf dem Fragen sinnvoller gestellt werden können.
- Jetzt schreibst Du in einem Atemzug "funktioniert nicht" und wirst unfreundlich.

So kommen wir nicht weiter.

Also: Variablen (die es im engeren Sinne in Python nicht gibt) nummeriert man höchstens in der Ausgabe - falls das sinnvoll ist. Man kann Werte aber in einer Liste speichern. Hierbei haben sie eine bestimmte Reihenfolge - das *könnte* eine Lösung für Dein Problem sein, von dem wir nicht wissen was es ist.

Wie wäre es Du tutst Dir wirklich einmal das Tutorial an? (Das geht fix.) Und formulierst dann dasjenige, was Du *tatsächlich* erreichen willst? (Das wird wohl kaum das Umbenennen von "Variablen" sein.)

Gruß,
Christian
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

hm, ich bin jetzt einfach mal davon ausgegangen, dass places_find eine Liste zurück gibt.
Wenn dem nicht so ist: wie sieht denn der Rückgabewert aus?

Wie gesagt, am einfachsten ist es wohl, wenn du genau beschriebst:
a) was du hast, und
b) wo du hin willst
makuee
User
Beiträge: 11
Registriert: Montag 15. März 2010, 11:20

vielleicht kommen wir so weiter.
wenn meine formulierung von vorhin dir ein wenig zu flappsig vorkam, dann entschuldige ich mich dafür.

ziel:
ich möchte mit der abfrage nach der region die place_id erhalten

Code: Alles auswählen

import flickrapi
api_key = '......'
eingabe=raw_input("Bitte Stadtnamen eingeben")
place = eingabe
flickr = flickrapi.FlickrAPI(api_key, cache=True)
photos = flickr.places_find(query=place)
for n, place in enumerate(photos[0]):
   sugar=place.attrib['place_id']
   print sugar
nun gibt mir das ergebnis allerdings 5 verschiedene id's zurück.
aus diesen 5 id's möchte ich mir nun die passende aussuchen und diese über die eingabe 1,2,3, oder oder oder weiterverarbeiten.
also in etwa so --> ausgabe:

Code: Alles auswählen

0: IkEb0MefBJs0tq0
1: FGtXm.2bAZ2aOwdjPQ
2: kPLKJXSbBZ1rWfnQ
3: 7rtlMS2aBpp7oog
4: ElaAIKmbBZ26Vl6a

Code: Alles auswählen

eingabe=raw_input("Bitte genauer werden:")
2
über die 2 wird nun die place_id kPLKJXSbBZ1rWfnQ in den weiteren code eingeben.
Natürlich könnte man auch einfach die place_id kopieren, aber ich wöllte es gern bedienungsfreundlicher.
Hoffe das ist nun zu verstehen.
Ciao
Zuletzt geändert von makuee am Montag 15. März 2010, 13:51, insgesamt 1-mal geändert.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Hmm, der Benutzer kann anhand dieser kryptischen ID genauer aussuchen, welchen Ort er auswählen möchte? Da muss doch irgendwo noch eine menschenlesbare Bezeichnung herkommen...
makuee
User
Beiträge: 11
Registriert: Montag 15. März 2010, 11:20

hey mkesper,

darum gehts nicht :)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

makuee, also willst du eben nicht den String veraendern, sondern willst nur die Nummer mit ausgeben dass der Nutzer sie sehen kann. Das macht doch die von CM schon erwaehnte Loesung mit enumerate!
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

makuee hat geschrieben:hey robert,

anscheinend bin ich noch nicht ganz aus dem wochenende zurück, aber wie kann ich denn auf einen bestimmten Eintrag aus der Liste photos zugreifen. z.b. den 2ten

danke
Suchst Du etwa

Code: Alles auswählen

photos[0][2]
?
MfG
HWK
lunar

Code: Alles auswählen

>>> items = ['spam', 'eggs', 'fluffy rabbit']
>>> for i, item in enumerate(items, start=1):
   ...:     print('{0:>2}: {1}'.format(i, item))
   ...: 
 1: spam
 2: eggs
 3: fluffy rabbit
>>> while True:
   ...:     response = raw_input('Enter number: ')
   ...:     if response.isdigit() and 1 < int(response) <= len(items):
   ...:         index = int(response)
   ...:         break
   ...: 
Enter number: a
Enter number: 10
Enter number: 2
>>> print('Your choice: {0}'.format(items[index-1]))
Your choice: eggs
makuee
User
Beiträge: 11
Registriert: Montag 15. März 2010, 11:20

hm....

danke lunar, sieht zwar super aus, funktioniert aber nicht, und zwar aus dem grund, dass "items" bei mir nicht festgelegt ist. über die api wird "items" immer ein neuer wert zugeordnet. für "items", wäre bei mir "sugar", ist kein array definiert.

ich gebs damit auf und werd es doch ein wenig umständlicher machen.
dank trotzdem nochmal an alle die's versucht haben.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

makuee hat geschrieben:danke lunar, sieht zwar super aus, funktioniert aber nicht, und zwar aus dem grund, dass "items" bei mir nicht festgelegt ist.
Wieso das denn nicht? In Deinem Beispiel sind die müsste "items" == "photos[0]" sein.
makuee hat geschrieben:über die api wird "items" immer ein neuer wert zugeordnet. für "items", wäre bei mir "sugar", ist kein array definiert.
Falsch, Dein "sugar" ist doch ein Wert, den Du selber umwandelst. Ob nun lunars oder meine Version (lunars ist allerdings schöner ;-) ) - diesen Schritt hast Du schon gemacht. Du mußt ihn nur auf die Beispiele anwenden.
makuee hat geschrieben:ich gebs damit auf und werd es doch ein wenig umständlicher machen.
So schnell? Schade.
makuee
User
Beiträge: 11
Registriert: Montag 15. März 2010, 11:20

hey cm,

wenn photos meine liste wäre, dann müsste ich diese mir auch ausgeben lassen können.
ich erhalte dabei aber lediglich

Code: Alles auswählen

<Element rsp at 38dbc10>
lunar

@makuee: Es ist völlig irrelevant, dass die Liste „festgelegt“ ist. Mein Quelltext benötigt keine Liste, sondern kommt mit Objekten beliebigen Typs zurecht, solange diese Objekte nur Iteration und Index-Zugriff bieten.

Die Schleife über "photos[0]" in Deinem ursprünglichen Quelltext zeigt, dass das Objekt Iteration anbietet, ansonsten würde die Schleife nicht funktionieren. Wenn Index-Zugriff nicht funktioniert, dann musst Du das Objekt eben vorher in eine Liste verwandeln, was dank der Iteration in jedem Fall funktioniert.

Das ist allerdings nun wieder Grundwissen über Pythons Typsystem, und sollte eigentlich klar sein, wenn man das Tutorial gelesen und verstanden hat.
Antworten