In Python, wie Sie erhalten eine Teilansicht eines dict?
Ist es möglich, eine Teilansicht eines dict
in Python Analog der pandas df.tail()/df.head()
. Angenommen, Sie haben eine sehr lange dict
, und Sie wollen einfach nur, um zu überprüfen, einige der Elemente (Anfang, Ende, etc.) der dict
. So etwas wie:
dict.head(3) # To see the first 3 elements of the dictionary.
{[1,2], [2, 3], [3, 4]}
Dank
- "der Anfang" und "Ende" haben keine Bedeutung mit Python dictionaries, weil Ihre Reihenfolge ist beliebig.
- Was meinst du mit "die ersten drei Elemente"? Ein
dict
hat keinen inhärenten Sinn Schlüssel bestellen. - sind Sie sicher, dass Sie nicht verwirrend, Wörterbücher und Listen?
- Ich meinte, die ersten drei Elemente, die kommen würde, wenn Sie rufen Sie die dict-auf der Konsole.....Manchmal tun Sie das, und wenn die dict-ist sehr lang, Sie erhalten eine Tonne von Daten, die clutters alle Ihrer Konsole Platz.
- Wieder:
dict
s haben keine inhärente Reihenfolge. - Sie können Sie aber nicht kontrollieren oder Vorhersagen, welche drei Elemente, diese werden. Wenn Sie meinen, Sie wollen einfach nur zeigen, eine beliebige Teilmenge der dict-Elemente, die Sie tun können, aber Sie werden nicht wissen, vor der Zeit genau, welche Elemente, die Sie sehen werden.
- Ich verstehe, dass, aber was ist, wenn Sie nur wollen, zu nehmen einen schnellen Blick an, wie der dict aussieht.
- Ok. Wie zeigst du sagen, 3-oder 4-dict-elements ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Irgendwie perversen Wunsch, aber Sie können, dass durch die Nutzung dieser
oder für kurze Wörterbücher
dict(sorted(mydict.items()[:3])
.items()
ist ein iterator, konvertieren Sie es in eine Liste ersten, oder es ll ein Fehler ausgelöst, wenn in Scheiben geschnitten.Jedoch:
Beachten Sie, dass das einfügen eines neuen Elementes verändert, was die "ersten" drei-Elemente wurden in einer unvorhersehbaren Art und Weise. Dies ist, was Menschen meinen, wenn Sie sagen, Sie dicts nicht bestellt. Sie können drei Elemente, wenn Sie wollen, aber Sie können nicht wissen, welche drei werden Sie.
Ich weiß, diese Frage ist 3 Jahre alt, aber hier ein pythonic version (vielleicht einfacher als die oben genannten Methoden) für
Python 3.*
:Wird es drucken Sie den ersten
n
Elemente des Wörterbuchsmy_dict
ein-bis-ing @Neb Lösung mit Python 3 dict-comprehension:
Es gibt ein dict, anstatt Ausdrucke
Edit:
in Python 3.x:
Ohne Verwendung von Bibliotheken ist es möglich, es zu tun auf diese Weise. Verwenden Sie die Methode:
gibt eine Liste von Wörterbuch-Schlüssel mit den Werten.
Es notwendig zu konvertieren, es auf eine Liste, sonst gibt es eine Fehlermeldung 'my_dict' - Objekt ist nicht subscriptable. Dann konvertieren Sie es in das Wörterbuch. Jetzt ist es bereit zum schneiden mit eckigen Klammern.
Vom die Dokumentation:
Hab ich nur gespielt um am besten mit anderen Python-Implementierungen (z.B. PyPy, IronPython, etc), so dass ich don ' T wissen, für sicher, wenn dies ist der Fall in allen Python-Implementierungen, aber die Allgemeine Idee eines dict/hashmap/hash/etc ist, dass die Tasten sind ungeordnet.
Dass gesagt wird, können Sie eine
OrderedDict
ausSammlungen
- Bibliothek.OrderedDict
s erinnern, die Reihenfolge der Schlüssel, wie Sie Sie eingegeben haben.Wenn die Tasten sind irgendwie sortiert, Sie können dies tun:
Oder vielleicht:
Wo
x[0]
ist der Schlüssel jeder Schlüssel/Wert-paar.Für diejenigen, die lieber lösen dieses problem mit
pandas
dataframes. Nur Sachen Ihr Wörterbuchmydict
in einen dataframe, es zu drehen, und die ersten paar Zeilen:0 hi0
1 hi1
2 hi2
3 hi3
4 hi4