Der folgende Code wurde in einem Python 2.7.1-Interpreter ausprobiert.
>>> a = [1, 2, 3]
>>> a.append(a)
>>> a
[1, 2, 3, [...]]
>>> a == a[-1]
True
>>> print a[-1]
[1, 2, 3, [...]]
Kann jemand bitte erklären, was Python hier versucht?
Antworten:
3 für die Antwort № 1Sie haben eine unendliche verschachtelte Liste in Ihrer Liste erstellt. Da es nicht dargestellt werden kann, [...]
erscheint.
Sehen Sie sich an, was passiert, wenn Sie versuchen, jeden Wert zu drucken:
>>> for item in a:
... print item
...
1
2
3
[1, 2, 3, [...]] # The whole list that we just iterated over :)
Beziehen auf Hier zum weiterlesen.
2 für die Antwort № 2
Sie erstellen im Grunde eine Liste verschachtelter Listen (Listen innerhalb von Listen) und hängen eine Liste an sich selbst an, die eine unendlich verschachtelte Liste erstellt
beispielsweise:
>>> a = [1,2,3]
>>> a.append(a)
>>> a
[1, 2, 3, [...]]
>>>
>>> a[3]
[1, 2, 3, [...]]
>>> a[3][3]
[1, 2, 3, [...]]
>>>
Wenn Sie das tun a[3]
Es zeigt die nächste Liste in der verschachtelten Liste a[3][3]
Ich bekomme die Liste nach innen a[3]
das [...]
So porträtiert Python diese Idee
Weitere Informationen und Beispiele zur Erläuterung dieser unendlich verschachtelten Listen Hier
0 für die Antwort № 3
Listen werden den ursprünglichen Listen als Zeiger zugewiesen. Wenn Sie wirklich möchten, dass eine Liste als Element 3 angehängt wird, können Sie eine Kopie wie folgt erstellen:
>>> a.append(a[:])
>>> print a
[1, 2, 3, [1, 2, 3]]
oder wenn Sie die Elemente von wollen a
verwenden Sie stattdessen:
>>> a = a + a
>>> print a
[1, 2, 3, 1, 2, 3]