2013-07-31 12 views
8

Ich frage mich, ob jemand weiß, wie Tabulatorvervollständigung für Wörterbuchschlüssel in IPython aktivieren oder implementieren? Es sieht so aus, als würde es sich nicht sehr von bereits existierenden Funktionen unterscheiden, wie zum Beispiel die Vervollständigung von Objektattributen. Wenn ich falsch liege, würde ich gerne verstehen, warumTab vollständige Wörterbuchschlüssel in Ipython

+0

Nur um zu verdeutlichen: Sie meinen, dass, wenn 'd = {" apple ": 1," banana ": 2}', dann wenn Sie 'd [" a "]' eingeben und den Cursor nach 'a' setzen, Sie möchten, dass "Apfel" ausgefüllt wird? –

+1

@DavidRobinson Ich stelle mir vor, ich würde 'd [" a' und drücken Tab und es wäre zu 'd [" apple "]' – gggg

+0

Dank auf die Sache zeigen. Machte einen Bericht von diesem auf https: //bugs.launchpad .net/python-mode/+ bug/1251690 –

Antwort

5

IPython unterstützt dict Schlüssel Abschluss für String-Schlüssel ab Version 3.0.0 (obwohl sie nicht in Release Notes erscheinen), dank this patch . Es unterstützt auch die Spaltennamenvervollständigung für numpy struct Arrays und Pandas DataFrame Spalten und für andere Typen, die __getitem__ über die Definition _ipython_key_completions_ definieren.

1

Es ist nicht in IPython 2.x integriert. Wenn Sie es hinzufügen möchten, haben einen Blick auf diese, wo jemand eine Lösung gehackt:

https://github.com/ipython/ipython/issues/1533

Auch gibt es viele kurze und einfache Möglichkeiten, um Objekte aus Wörterbücher zu erstellen, um die üblichen Tabulatorvervollständigung zu gewinnen. Wenn das bei Ihnen helfen würde, eine der in dieser Frage beschriebenen Arten verwenden:

Convert Python dict to object?

+0

Nicht mehr wahr, siehe meine Antwort. – joeln