Dynamisch deklarieren / erstellen Listen in python

Ich bin ein Anfänger in Python und traf mit einer Anforderung zu erklären / erstellen Sie einige Listen dynamisch für in Python-Skript. Ich brauche etwas wie zu erstellen 4 Listenobjekte wie depth_1, depth_2, depth_3, depth_4 auf geben eine Eingabe von 4.Like

for (i = 1; i <= depth; i++) { ArrayList depth_i = new ArrayList(); //or as depth_i=[] in python } 

So dass es dynamisch erstellen Listen.Kann Sie bitte mir eine Lösung für diese?

Danke Ihnen im Voraus

    3 Solutions collect form web for “Dynamisch deklarieren / erstellen Listen in python”

    Sie können tun, was Sie wollen mit globals() oder locals() .

     >>> g = globals() >>> for i in range(1, 5): ... g['depth_{0}'.format(i)] = [] ... >>> depth_1 [] >>> depth_2 [] >>> depth_3 [] >>> depth_4 [] >>> depth_5 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'depth_5' is not defined 

    Warum nimmst du keine Liste der Liste?

     >>> depths = [[] for i in range(4)] >>> depths [[], [], [], []] 

    Das kannst du in Python nicht erreichen. Der empfohlene Weg ist, eine Liste zu verwenden, um die vier Liste zu speichern, die Sie wünschen:

     >>> depth = [[]]*4 >>> depth [[], [], [], []] 

    Oder verwenden Sie Tricks wie globals und locals . Aber tu das nicht Das ist keine gute Wahl:

     >>> for i in range(4): ... globals()['depth_{}'.format(i)] = [] >>> depth_1 [] 

    Ich fühle, dass depth_i riskant ist und würde es nicht verwenden. Ich würde empfehlen, dass Sie stattdessen den folgenden Ansatz verwenden:

     depth = [[]] for i in range(4): depth.append([]) 

    Jetzt kannst du einfach depth_1 mit der depth[1] anrufen. Wenn möglich, sollten Sie von der depth[0] .

    Dann wird dein Code depth = [] statt.

    Python ist die beste Programmiersprache der Welt.