Was tun Auslassungszeichen [...] Mittelwert in einer Liste?
Ich war das Spiel in python. Ich verwendete den folgenden code in IDLE:
p = [1, 2]
p[1:1] = [p]
print p
Wurde die Ausgabe:
[1, [...], 2]
Was ist das […]
? Interessanterweise konnte ich nun verwenden Sie diese als eine Liste von Liste von Liste bis zur Unendlichkeit, d.h.
p[1][1][1]....
Könnte ich schreiben über wie lange, wie ich wollte und es würde immer noch funktionieren.
EDIT:
- Wie ist es dargestellt in Erinnerung?
- Was ist Ihre Verwendung? Beispiele für einige Fälle, in denen es nützlich ist, wäre hilfreich.
- Link auf die offizielle Dokumentation wäre wirklich nützlich.
- Noch auf der Suche nach Antworten zu BEARBEITEN, die 1. und 3. element in der Liste.
- Ein einfacheres Beispiel wäre
p = [1]; p[0] = p
. - Ich denke, das ist ein Duplikat von Was bedeutet [...] (eine Ellipse) in einer Liste bedeuten in Python?, obwohl die Frage (und die Antworten) sind in dieser Frage.
- Dreampie ist smart ` >>> p[1:1] = [p] >>> p 3: [1, <Rekursion auf die Liste mit der id=3074777548>, 2] >>> ` den genauen Details
- Hat nicht diese
p 3: [1, <Recursion on list with id=3074777548>, 2]
. Was hast du laufen? id=3074777548
ist die id desp
so seine leicht zu verstehen, dass seine Bezugnahme auf sich selbst. Trotzdem sehr schöne Frage @Zel- Ich habe nicht bekommen, was Sie Befehl ausgeführt zu bekommen, dass Ausgabe.
- Ich benutze dreampie.org
- Ist es eine IDE für Python, oder was?
- seine python-shell, wie LEERLAUF oder mit einfachen python >>>. Folgen Sie dem link
- Es ging. Habe versucht zu downloaden aber der link hat nicht funktioniert. Werde morgen noch einmal versuchen. Alle Vorteile, die über LEERLAUF?
- Der link funktioniert für mich und mit Dreampie ich habe die gleiche Ausgabe wie Rahul Gautam.
InformationsquelleAutor Aseem Bansal | 2013-06-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bedeutet es, dass Sie erzeugt eine unendliche Liste verschachtelt in sich, die nicht gedruckt werden können.
p
enthältp
enthältp
... und so weiter. Die[...]
notation ist eine Möglichkeit, lassen Sie wissen, und zu informieren, dass es können nicht dargestellt werden! Werfen Sie einen Blick auf @6502 Antwort, um zu sehen, ein schönes Bild, das zeigt, was passiert.Nun, in Bezug auf die drei neuen Elemente nach deinem edit:
Dies ist, was Ihr code erstellt
Es ist eine Liste, wo die ersten und letzten Elemente zeigen zwei zahlen (1 und 2) und wo das mittlere element als Verweis auf die Liste selbst.
In Common Lisp beim drucken kreisförmige Strukturen aktiviert ist, ein solches Objekt gedruckt werden, als
Bedeutung, dass ein Objekt (gekennzeichnet mit 1 mit
#1=
), ist ein Vektor mit drei Elementen, das zweite ist das Objekt selbst (zurück-verwiesen, mit#1#
).In Python stattdessen bekommst du nur die information, dass die Struktur ist kreisförmig mit
[...]
.In diesem konkreten Fall die Beschreibung ist nicht zweideutig sind (es geht rückwärts, zeigen auf eine Liste, aber es ist nur eine Liste, so muss es sein, dass man). In anderen Fällen kann jedoch mehrdeutig... z.B. in
die rückwärts-Referenz entweder auf der äußeren oder auf der inneren Liste.
Diese beiden verschiedenen Strukturen, gedruckt in der gleichen Weise erstellt werden können, mit
und Sie würde in Erinnerung
[1, [2, [...], 3]]
wie diese:x[1] = [2, [...], 3]
undy[1] = [2, 1, [...]], 3]
. Dies bedeutet, dass x besteht aus einer 1 und dann wiederholen 2s, in der Erwägung, dass y besteht aus abwechselnd 1s und 2s.#(1 #1=#(2 #1# 3))
fürx
und#1=#(1 #(2 #1# 3))
füry
.#1=(1 . #1#)
.Auf die Frage "Was ist seine Nutzung", hier ist ein konkretes Beispiel.
Graph-Reduktion ist eine evaluation Strategie irgendwann verwendet, um zu interpretieren, eine computer-Sprache. Dies ist eine gemeinsame Strategie für lazy evaluation, insbesondere von funktionalen Sprachen.
Ausgangspunkt ist das erstellen eines Graphen repräsentieren die Abfolge von "Schritten" das Programm. Je nach control-Strukturen in diesem Programm verwendet, kann dies dazu führen zyklische graph (weil das Programm enthält eine Art von "forever" - Schleife -- oder verwenden Sie Rekursion, deren "Tiefe" bekannt sein wird, an Bewertung Zeit, aber nicht zur Diagramm-Erstellung Zeit)...
In Reihenfolge zu stellen Sie so ein Diagramm, müssen Sie unendliche "Datenstrukturen" (manchmal genannt rekursive Daten-Strukturen), wie man Sie bemerkt. In der Regel, etwas komplexer aber.
Wenn Sie daran interessiert sind, das Thema hier ist (unter vielen anderen) einen Vortrag über das Thema:
http://undergraduate.csse.uwa.edu.au/units/CITS3211/lectureNotes/14.pdf
Wir tun dies die ganze Zeit in der Objekt-orientierten Programmierung. Wenn zwei Objekte sich gegenseitig referenzieren, direkt oder indirekt, Sie sind beide unendlich rekursiven Strukturen (oder beide Teil des gleichen unendlich rekursive Struktur, je nachdem wie man es betrachtet). Das ist, warum Sie nicht sehen, so viel in etwas so primitiven wie einer Liste -- weil wir in der Regel besser beschreibt das Konzept, wie miteinander "Objekte" als eine "unendliche Liste".
Können Sie auch
...
mit einem unendlich rekursiven Wörterbuch. Lassen Sie uns sagen, Sie wollen ein Wörterbuch der Ecken eines Dreiecks, wobei jeder Wert ist ein Wörterbuch der anderen Ecken verbunden ist, die Ecke. Sie konnte es einrichten wie diese:Nun, wenn Sie drucken
triangle
(odera
oderb
oderc
für diese Angelegenheit), werden Sie sehen, es ist voll von{...}
weil irgendwelche zwei Ecken, so sprechen wieder miteinander.a = {}; a['a'] = a; print a['a']['a']['a']
%pprint
Umschalten pretty-printing aus, es wird sich zeigen...
.Wie ich verstanden habe, ist dies ein Beispiel für Fixpunkt
p = [1]; p[0] = p
Beispiel die Bedürfnissef = lambda x:x[0]
zu arbeiten. Es ist ein Beispiel für einen fix-Punkt, aber ich habe noch nicht in der Lage, um zu sehen, zu wissen, wie das nützlich ist. Der Reale Wert der fix-Punkt der Ankunft wird es von einem anderen Punkt in einem rekursiven oder iterativen Weise. Ein Beispiel, das veranschaulicht, wie verwenden Sie die list-Struktur der original-Frage zu erstellen, die Y combinator wäre hilfreich, wenn es möglich ist.q = lambda: q
macht einen unendlich callable lambdaDen Namen von diesem besonderen Objekt ist die Schaltfläche mit den Auslassungszeichen. Ich denke, dass es ist implementiert als singleton-Objekt in der Python-intepreter/VM-etwas in der Art None --- Wächter der Arten. Wie Sie gesehen haben es ist eine Möglichkeit für Python zur Darstellung der Referenz auf eine Liste in sich selbst.