Hallo zusammen,
bin nicht gerade ein Programmierprofi, von daher hoffentlich eine recht einfache Frage:
ich zeih mir über eine API Daten und speicher diese als Variable
z.b.
klaus ernst
holger unernst
...
jetzt würde ich gern eine Nummerierung hinufügen
also so:
1. klaus ernst
2. holger unernst
wie bewerkstellige ich das denn am einfachsten?
Danke für Hilfe
Variablen nummerieren
Möchtest Du sowas:
In diesem Fall möchtest Du tatsächlich eine Liste verwenden …
Code: Alles auswählen
variable_1 = 'spam'
variable_2 = 'eggs'
Vielleicht erklärst du erst einmal den Aufbau des Programms und zeigst, wo und wie die Daten in die Variable geschrieben werden. Konkreter Beispielcode wäre schön.makuee hat geschrieben:ich zeih mir über eine API Daten und speicher diese als Variable
z.b.
klaus ernst
holger unernst
...
jetzt würde ich gern eine Nummerierung hinufügen
also so:
1. klaus ernst
2. holger unernst
Vorher kann man nur spekulieren, was für dich richtig sein könnte.
gut, dann doch der code
ich erhalte
nun möchte ich es aber gerne, dass die place_id's mit einer nummerierung versehen werde, etwa so:
1. IkEb0MefBJs0tq0
2. FGtXm.2bAZ2aOwdjPQ
3. ...
hoffentlich verständlicher
Danke
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 place in photos[0]:
sugar=place.attrib['place_id']
print sugar
Code: Alles auswählen
IkEb0MefBJs0tq0
FGtXm.2bAZ2aOwdjPQ
kPLKJXSbBZ1rWfnQ
7rtlMS2aBpp7oog
ElaAIKmbBZ26Vl6a
1. IkEb0MefBJs0tq0
2. FGtXm.2bAZ2aOwdjPQ
3. ...
hoffentlich verständlicher

Danke
ah ja...
http://docs.python.org/tutorial/datastr ... e-on-lists
(ungetestet/so in etwa...)
http://docs.python.org/tutorial/datastr ... e-on-lists
Code: Alles auswählen
...
print photos[0].index(place), sugar
Code: Alles auswählen
for n, place in enumerate(photos[0]):
sugar=place.attrib['place_id']
print "%d: %s" % (n, sugar)
Ist das was Du wünscht?
edit: Die Lösung von .robert macht in etwas das Selbe, wird bei langen Listen aber langsamer sein, da wiederholt .index() aufgerufen werden muß.
Seid python 2.6 gibt es einen start-Parameter - der OP kann auch in den Docs nachschauen ... 
Aber irgendwie bin ich mir nicht ganz sicher, dass dies die gesuchte Lsg. ist.

Aber irgendwie bin ich mir nicht ganz sicher, dass dies die gesuchte Lsg. ist.
In dem Fall bietet sich an Dictionaries zu verwenden, die hier schneller sind:CM hat geschrieben:Die Lösung von .robert [...], wird bei langen Listen aber langsamer sein, da wiederholt .index() aufgerufen werden muß.
Code: Alles auswählen
d = dict(enumerate(photos[0]))
Gerrit
Da photos ja eine Liste ist, ist die Information ja schon durch die Position der Elemente in der Liste gegeben. Warum willst du das extra noch da rein schreiben?
Für Ausgaben kannst du dass ja wie oben beschrieben mit Ausgeben.
Für Ausgaben kannst du dass ja wie oben beschrieben mit Ausgeben.
Wie wäre es Du liest erst einmal das Tutorial? Dann kannst Du
a) solch einfache Fragen in Zukunft selber klären und
b) weitergehende Fragen etwas klarer stellen.
Zur letzten Frage:
a) solch einfache Fragen in Zukunft selber klären und
b) weitergehende Fragen etwas klarer stellen.
Zur letzten Frage:
Code: Alles auswählen
some_data = [ ... ]
# access first item
some_data[0]
# access n-th item
some_data[n-1]
# access last item
some_data[-1]
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
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
- 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
- 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
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
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
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
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:
ü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
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
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
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.