Hallo!
Wie kann ich die ersten 10 Einträge eines Dictionaries ausgeben?
Grüße, pktm
die ersten 10 Einträge eines Dictionaries ausgeben
Hi,
bin da selber noch net so bewandert, aber ich weis, dass die Einträge in einer Dictionarie nicht der Reihenfolge entsprechen müssen, in der man sie hinzugefügt hat.
Als Lösung muss man daher nebenbei eine Liste führen, weil in dieser stimmt die Reihenfolge.
Gruß
bin da selber noch net so bewandert, aber ich weis, dass die Einträge in einer Dictionarie nicht der Reihenfolge entsprechen müssen, in der man sie hinzugefügt hat.
Als Lösung muss man daher nebenbei eine Liste führen, weil in dieser stimmt die Reihenfolge.
Gruß
Falls es irgendwelche Elemente sein dürfen:
Code: Alles auswählen
from itertools import islice
for item in islice(a_dict.iteritems(), 10):
print item
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Wenn du die ersten 10 Ausgeben willst dann ist ein dict nicht das richtige.
das würde die ersten 3 Einträge der liste daten aus printen.
Wie schon oben erwähnt wenn du die ersten 10 eines dicts haben willst musst du festlegen welches die ersten 10 sind und das musst du dann in einer Liste mit schreiben.
Code: Alles auswählen
daten = ['lol','lal','lul','lil','foo','bar']
for x in xrange(3):
print daten[x]
Wie schon oben erwähnt wenn du die ersten 10 eines dicts haben willst musst du festlegen welches die ersten 10 sind und das musst du dann in einer Liste mit schreiben.
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Moin,
einfache Frage, einfache Antwort:
liefert eine Liste mit den ersten 10 Elementen.
Dass sie nicht unbedingt in der Reihenfolge ausgegeben werden, wie sie eingefügt wurden, liegt in der Natur ungeordneter Felder. Das ist auch nicht die Aufgabe von Dictionaries, sondern der schnelle Zugriff auf bekannte Elemente.
Grüße,
Michael
einfache Frage, einfache Antwort:
Code: Alles auswählen
print d.items()[:10]
Dass sie nicht unbedingt in der Reihenfolge ausgegeben werden, wie sie eingefügt wurden, liegt in der Natur ungeordneter Felder. Das ist auch nicht die Aufgabe von Dictionaries, sondern der schnelle Zugriff auf bekannte Elemente.
Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Wobei natürlich bei einem Dictionary mit einer Million Einträgen erst einmal eine Liste mit einer Million Einträgen erzeugt wird um dann davon nochmal die ersten 10 Elemente zu kopieren.
Wenn das Dictionary nicht gross ist, dann macht das nicht wirklich einen Unterschied, aber ich wollt's erwähnt haben.
Wenn das Dictionary nicht gross ist, dann macht das nicht wirklich einen Unterschied, aber ich wollt's erwähnt haben.
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Hi,
ich wusste, dass das Argument kommt und stelle nun fest, dass ich vergaß zu erwähnen, dass dieser Ansatz nur für kleine Dicts geeignet ist. Aber bitte, man kann das auch über den Iterator machen, auch wenn man dann zwei Zeilen braucht:
Grüße,
Michel
ich wusste, dass das Argument kommt und stelle nun fest, dass ich vergaß zu erwähnen, dass dieser Ansatz nur für kleine Dicts geeignet ist. Aber bitte, man kann das auch über den Iterator machen, auch wenn man dann zwei Zeilen braucht:
Code: Alles auswählen
I = d.iteritems()
print [I.next() for i in xrange(10)]
Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Hi Blacky,
ja schon, aber ich wollte es eben ohne extraimport machen.
Michael
ja schon, aber ich wollte es eben ohne extraimport machen.
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
Die liest sich auch besser, für mich halt zumindest. Zum jetzigen Zeitpunkt versteh ich nicht was islice wirklich macht.Michael Schneider hat geschrieben:Hi Blacky,
ja schon, aber ich wollte es eben ohne extraimport machen.
Michael
LG
rolgal_reloaded
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das gleiche wie die Slice-Syntax, nur eben mit Generatoren. Guck mal in [wiki]Neue Features#Itertools[/wiki], dort ist es beschrieben.rolgal_reloaded hat geschrieben:Die liest sich auch besser, für mich halt zumindest. Zum jetzigen Zeitpunkt versteh ich nicht was islice wirklich macht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
Guter Tipp, danke!Leonidas hat geschrieben:Das gleiche wie die Slice-Syntax, nur eben mit Generatoren. Guck mal in [wiki]Neue Features#Itertools[/wiki], dort ist es beschrieben.rolgal_reloaded hat geschrieben:Die liest sich auch besser, für mich halt zumindest. Zum jetzigen Zeitpunkt versteh ich nicht was islice wirklich macht.
@edit
Code: Alles auswählen
list(_)
LG
rolgal_reloaded[/code]
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Und es ist auch kein Operator...
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
Und was ist es?birkenfeld hat geschrieben:Und es ist auch kein Operator...
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Ein ganz normaler Name, der vom interaktiven Prompt in die Globals eingetragen wird.
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
@b und b:-)
Danke, bei der Gelegenheit:
Ich habe mir izip ein bisschen angeguckt - das Beispiel im Wiki.
Nun wenn man das Iteratorobjekt erzeugt und gleich list(_) eingibt, dann sieht man eigentlich die ganze Liste.
Sie ist also doch komplett vorhanden. Muss sie von der Logik her auch, aber wie kann es dann zu einem Performancevorteil gegenüber zip() kommen?
Die Frage bezieht sich eigentlich auf alle Iteratorgeschichten.
Klar was ich meine? Schwierig diese Frage zu forumulieren
LG
rolgal_reloaded
Danke, bei der Gelegenheit:
Ich habe mir izip ein bisschen angeguckt - das Beispiel im Wiki.
Nun wenn man das Iteratorobjekt erzeugt und gleich list(_) eingibt, dann sieht man eigentlich die ganze Liste.
Sie ist also doch komplett vorhanden. Muss sie von der Logik her auch, aber wie kann es dann zu einem Performancevorteil gegenüber zip() kommen?
Die Frage bezieht sich eigentlich auf alle Iteratorgeschichten.
Klar was ich meine? Schwierig diese Frage zu forumulieren
LG
rolgal_reloaded
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
okay wärs ne operator würde folgendes gehen:
kritik angenommen
ihr seit aber auch immer sehr genau bei so etwas.
Code: Alles auswählen
5_7
ihr seit aber auch immer sehr genau bei so etwas.
@rolgal_reloaded: Wenn man sofort `list()` darauf anwendet, dann hat man natürlich keinen Vorteil gegenüber `zip()`. Auf der Wikiseite ging's ja aber auch darum zu zeigen, was in dem Iterator "drinsteckt". Und da ist `list()` die einfachste Methode den komplett zu zeigen.