Über list.extend (Tupel)

Der Code ist hier:

>>> a = ['xyz'] >>> b = (5,) >>> a.extend(b) >>> a ['xyz', 5] 

Ich habe viel informiert, aber beide haben mir das gesagt:

  • Kann Matplotlib-Animation nicht speichern
  • Wie man Kollokationen im Text findet, python
  • Python-Funktion, um beliebige Zeichenfolgen gültige Dateinamen zu machen
  • Was genau machen "u" und "r" String Flags, und was sind rohe String Literale?
  • Wenn Sie unerwartete Ergebnisse bei der Indizierung zurückgeben
  • Schnelle zufällige gewichtete Auswahl über alle Zeilen einer stochastischen Matrix
  •  list.extend(seq) seq -- This is the list of elements 

    Ich möchte wissen, warum die Liste ein Tupel erweitern kann.
    Danke.

  • Erklären Sie, warum numpy nicht aus dem Quellverzeichnis importiert werden soll
  • Pythonreferenzen
  • Fehler bei der Installation von Pygame auf Mountain Lion
  • Python und GTK +: Wie man Garbage Sammler freundliche Objekte zu schaffen?
  • WxPython StaticText Widget Schriftart
  • Konvertieren eines Strings in eine formatierte Datumszeitzeichenfolge mit Python
  • 3 Solutions collect form web for “Über list.extend (Tupel)”

    Wenn du das docstring auf extend siehst, wirst du sehen, dass es um jegliches iterable erweitert werden kann:

     """ L.extend(iterable) -> None -- extend list by appending elements from the iterable """ 

    Dies bedeutet, dass Sie nicht nur auf die list s oder tuple s beschränkt sind, sondern auch string s, set s und andere iterables:

     for iterable in ('ab', set([1, 2, 3]), {1:2, 3:4}, (0, 1)): l = [1] l.extend(iterable) print(l) 

    Dies druckt:

     [1, 'a', 'b'] [1, 1, 2, 3] [1, 1, 3] # Note dictionaries iterate over keys by default [1, 0, 1] 

    List-Methode extend kann eine Liste Instanz aus jedem iterable, und Tupel ist iterable. So ist es das Gegenteil von dem, was du gesagt hast, das Tupel verlängert die Liste nicht umgekehrt.

    Es bedeutet genau, was es sagt, was ist das, was du getan hast: nimm eine list und verlängere sie durch eine Sequenz. Es muss nicht genau der Listentyp sein. Die Ressourcen, die Sie gefunden haben, könnten in diesem Punkt klarer gewesen sein.

    Die offizielle Dokumentation sagt folgendes:

    Die Operationen in der folgenden Tabelle sind auf veränderlichen Sequenztypen definiert. Die collections.abc.MutableSequence ABC wird bereitgestellt, um es einfacher zu machen, diese Operationen auf benutzerdefinierten Sequenztypen korrekt zu implementieren.

    In der Tabelle ist s eine Instanz eines veränderlichen Sequenztyps, t ist ein beliebiges iserbares Objekt und x ist ein beliebiges Objekt, das alle von s auferlegten Typ- und bytearray erfüllt (z. B. akzeptiert bytearray nur ganze Zahlen, die die Wertbegrenzung 0 <= x <= 255 erfüllen 0 <= x <= 255 ).

     s.extend(t) or s += t 

    Verlängert s mit dem Inhalt von t (meistens das gleiche wie s[len(s):len(s)] = t )

    Also, a aus deinem Beispiel kann jede veränderliche Sequenz-Typ, wie eine list , und b kann jede Sequenz, wie ein tuple .

    Python ist die beste Programmiersprache der Welt.