Fügen Sie ein neues Element zu einer Liste innerhalb einer Liste hinzu

Ich versuche, ein neues Float-Element an eine Liste in einer anderen Liste anzuhängen, zum Beispiel:

list = [[]]*2 list[1].append(2.5) 

Und ich bekomme folgendes:

 print list [[2.5], [2.5]] 

Wann ich gerne bekommen möchte:

 [[], [2.5]] 

Wie kann ich das machen?

Danke im Voraus.

8 Solutions collect form web for “Fügen Sie ein neues Element zu einer Liste innerhalb einer Liste hinzu”

lst = [[] for _ in xrange(2)] (oder gerade [[], []] ). Verwenden Sie keine Multiplikation mit veränderlichen Objekten – Sie erhalten das gleiche X mal, nicht X verschiedene.

 list_list = [[] for Null in range(2)] 

Nennen Sie es nicht list , die Sie daran hindern, die eingebaute Funktionsliste list() aufzurufen.

Der Grund, dass dein Problem passiert, ist, dass Python eine Liste erstellt und dann zweimal wiederholt. Also, ob du es list_list[0] indem du es entweder mit list_list[0] oder mit list_list[1] , machst du dasselbe, damit deine Änderungen bei beiden Indizes erscheinen.

Sie können auf einfachste Weise …

 >>> list = [[]]*2 >>> list[1] = [2.5] >>> list [[], [2.5]] 
 list = [[]] list.append([2.5]) 

oder

 list = [[],[]] list[1].append(2.5) 

[] Ist ein Listenkonstruktor, und in [[]] eine Liste und eine Unterliste erstellt. Die *2 dupliziert den Verweis auf die innere Liste, aber keine neue Liste wird konstruiert:

 >>> list[0] is list[1] ... True >>> list[0] is [] ... False 

Die Lösung besteht aus 2 inneren Listen, list = [[], []]

Wie pro @ Cat Plus Plus nicht verwenden Multiplikation.Ich habe versucht, ohne it.with gleichen Ihren Code.

 >> list = [[],[]] >> list[1].append(2.5) >> list >> [[],[2.5]] 

Du solltest so etwas schreiben:

 >>> l = [[] for _ in xrange(2)] >>> l[1].append(2.5) >>> l [[], [2.5]] 

Ihre Outter-Liste enthält eine weitere Liste und die Multiplikation der Outter-Liste wird die Liste der resultierenden Liste haben alle den gleichen Zeiger auf die innere Liste. Sie können eine multidimensionale Liste rekursiv wie folgt erstellen:

 def MultiDimensionalList(instance, *dimensions):   if len(dimensions) == 1:    return list(     instance() for i in xrange(      dimensions[0]     )    )   else:    return list(     MultiDimensionalList(instance, *dimensions[1:]) for i     in xrange(dimensions[0])    ) print MultiDimensionalList(lambda: None, 1, 1, 0) 

[[]]

  • Wie benutzt man Python, um herauszufinden, dass die Wörter mit Vokalen in einer Liste beginnen?
  • Python-verknüpfte Liste O (1) einfügen / entfernen
  • Zusammenführen von drei Listen in ein Wörterbuch
  • Python verschachtelte Schleife mit Loops und Dateien
  • Anhängen von Elementen zu Listen in einem Listenverständnis
  • Finden und aktualisieren Duplikate in einer Liste von Listen
  • Bestimmen Sie, ob alle Elemente in einer Liste vorhanden sind und in der gleichen Reihenfolge in einer anderen Liste
  • Python entfernen doppelten Wert in einer kombinierten Wörterbuch-Liste
  • Python3 AttributeError: 'list' Objekt hat kein Attribut 'clear'
  • Beitritt von Paaren von Elementen einer Liste - Python
  • Wie kann ich die zufällige Matrix in einen Tisch verwandeln?
  • Python ist die beste Programmiersprache der Welt.