Seite 1 von 1

"append" bei Verschachtelung

Verfasst: Samstag 12. Juli 2014, 02:26
von Holger Chapman
Hallo,

ich brauche in einem Python-2-Skript eine Datenstruktur, die den Inhalt eines Verzeichnisses abbildet. Dafür verwende ich ein Dictionary, in dem der absolute Pfad des Verzeichnisses der Schlüssel (key) sein soll, und der Wert (value) des Verzeichnisses soll eine Liste mit zwei Unterlisten sein: 1. Unterverzeichnisse und 2. Dateien. Also zum Beispiel:

Code: Alles auswählen

directory={"/testdir" : [["subdir1", "subdir2"], ["file1", "file2"]]}
Jetzt möchte ich zu einer der beiden Unterlisten einen Wert hinzufügen, zum Beispiel eine weitere Datei. Ich hatte gehofft, dass Folgendes funktioniert:

Code: Alles auswählen

directory["/testdir"] = [directory["/testdir"][0], directory["/testdir"][1].append("file3")]
Das führt aber leider nicht zu der folgenden (gewünschten) Situation,

Code: Alles auswählen

{'/testdir': [['subdir1', 'subdir2'], ['file1', 'file2', 'file3']]}
sondern zu folgender Situation:

Code: Alles auswählen

{'/testdir': [['subdir1', 'subdir2'], None]}
Was kann ich tun, um den Dateinamen zusätzlich in die Liste der Dateinamen in meinem Test-Verzeichnis aufzunehmen?

Vielen Dank!


Holger

Re: "append" bei Verschachtelung

Verfasst: Samstag 12. Juli 2014, 08:16
von MagBen
So geht's

Code: Alles auswählen

directory={"/testdir" : [["subdir1", "subdir2"], ["file1", "file2"]]}
directory["/testdir"][1].append("file3")
Holger Chapman hat geschrieben:Ich hatte gehofft, dass Folgendes funktioniert:
directory["/testdir"] = [directory["/testdir"][0], directory["/testdir"][1].append("file3")]
Hier fügst Du nichts zum Eintrag directory["/testdir"] hinzu, sondern ersetzt den ganzen Eintrag. Das None ist dann eben der Rückgabewert von append.

Re: "append" bei Verschachtelung

Verfasst: Samstag 12. Juli 2014, 09:29
von Holger Chapman
MagBen hat geschrieben:So geht's [...]
Ja, funktioniert. Super.

Danke!


Holger