it-swarm.com.de

Wie kann ich in Python mehrere leere Listen erstellen?

Wie kann ich viele leere Listen erstellen, ohne manuell einzugeben 

list1=[] , list2=[], list3=[]

Gibt es eine for-Schleife, die mich zu einer solchen leeren Liste macht?

17
Sameer Patel

Ein Listenverständnis ist hier am einfachsten:

>>> n = 5
>>> lists = [[] for _ in range(n)]
>>> lists
[[], [], [], [], []]

Seien Sie vorsichtig, nicht in die Falle zu fallen, die heißt:

>>> lists = [[]] * 5
>>> lists
[[], [], [], [], []]
>>> lists[0].append(1)
>>> lists
[[1], [1], [1], [1], [1]]
63
Eric

Wenn Sie verschiedene Listen ohne "Listenlisten" erstellen möchten, versuchen Sie Folgendes: 

list1, list2, list3, list4 = ([] for i in range(4))
20
alemangui

Nachschlagen Listenverstehen

listOfLists = [[] for i in range(N)]

Jetzt enthält listOfLists N leere Listen

Weitere Links zu Listenkomplexen:

123

Hoffe das hilft

9
inspectorG4dget

Wie wäre es damit.

def mklist(n):
    for _ in range(n):
        yield []

Verwendungszweck:

list(mklist(10))
[[], [], [], [], [], [], [], [], [], []]

a, b, c = mklist(3) # a=[]; b=[]; c=[]
2
yutaka

Sie können auch eine Liste mit einer Liste mit einer Liste hinzufügen. Es wird kein Fehler zurückgegeben. Aber ich habe keine Ahnung, wozu es dient. 

n = 5 
>>> lists = [[[]]] for _ in range(n)]
>>> lists
   [[[[]]], [[[]]], [[[]]], [[[]]], [[[]]]]
1

Ich sehe, dass viele Antworten hier viele Listen ohne Namen erhalten (als Elemente einer größeren Liste). Dies ist möglicherweise nicht immer das, was benötigt wird ..__ Es ist möglich, mehrere leere Listen mit jeweils unterschiedlichen Namen/Werten mit einem Tuple zu erstellen:

a,b,c = ([],[],[])

wenn Sie diese Struktur ändern, sollten Sie bekommen, was Sie möchten.

0
Pauli

Tut mir leid, dass ich zwei Jahre zu spät komme, aber vielleicht kann ich noch anderen Menschen helfen.

Der folgende Code wird sich dynamisch "erstellen". Für jede Iteration wird der folgende Befehl ausgegeben:

liste Nummer = []

Dabei ist number der Wert von i in der Schleife.

x = 3 # amount of lists you want to create
for i in range(1, x+1):
    command = "" # this line is here to clear out the previous command
    command = "list" + str(i) + " = []"
    exec(command)

Das Ergebnis dieses bestimmten Codeteils besteht aus drei Variablen: list1, list2 und list3, die erstellt werden und jeder eine leere Liste zugewiesen bekommen.

Sie können dies verallgemeinern, um praktisch alles zu machen, was Sie möchten ... Beachten Sie, dass Sie dies meiner Meinung nach nicht in eine Funktion integrieren können, da Variablen und globale Variablen funktionieren.

name = "my_var" # This has to be a string, variables like my_var1, my_var2 will be created.
value = "[]" # This also has to be a string, even when you want to assign integers! When you want to assign a string "3", you'd do this: value = "'3'"
amount = 5 # This must be an integer. This many variables will be created (my_var1, my_var2 ... my_var5).

for i in range(1, amount+1):
    command_variable = ""
    command_variable = name + str(i) + " = " + value
    exec(command_variable)

Ich hoffe ich habe geholfen!

0
Martijn Luyckx