Seite 1 von 1

liste mit strings zu dictionary

Verfasst: Dienstag 11. April 2006, 17:04
von jAN
ich habe folgendes probelm:
ich habe eine liste mit dateinamen. diese dateinamen haben die form Hauptthema.Unterthema1.Unterthema2.Untertheman.article
ich möchte nun aus diesen dateinamen ein geschachteltes dictionary erzeugen das so aussieht:

Code: Alles auswählen

{
Hauptthema1:{
  Unterthema1,
  Unterthema2,
  Unterthema3:{
    Unterthema1,
    Unterthema2
    }
  }
Hauptthema2:{
  ...}
...
}
und ich hab absolut keine idee wie ich das in python umsetzen kann.... *auf dem schlauch steh*

Verfasst: Dienstag 11. April 2006, 17:50
von Mad-Marty
Wenn nicht bekannt ist durch was sich der artikel kennzeichnet, btw. es keinen anhaltspunkt gibt wieviele ebenen immer existieren (sind es immer 3 ?) ist das nicht wirklich möglich.


genausogut könntest du es mit [1,2,3,4,5,6,7,8,9] versuchen - praktisch unmöglich. Stelle deine übertragungsform am besten um-

Verfasst: Dienstag 11. April 2006, 18:02
von jAN
ich hatte mir schon gedacht das das unmöglich ist...
mein eigentlcihes project: ich will mit php aus dateien, die in einem verzeichnis sind ein menu erzeugen...
naja schade :(

Verfasst: Dienstag 11. April 2006, 20:09
von digitus
jAN hat geschrieben:ich hatte mir schon gedacht das das unmöglich ist...
mein eigentlcihes project: ich will mit php aus dateien, die in einem verzeichnis sind ein menu erzeugen...
naja schade :(
Unmöglich ist das nicht, hab ich mit Python mal gemacht. Also aus ner Verzeichnisstruktur mit .html Files drin einen Menübaum (mit begrenzter Tiefe) generiert. Falls dich der Code interessiert kann ichs dir zukommen lasen. Bei mir waren es dann keine verschachtelten Dicts sondern verschachtelte Instanzen von MenuItems. Ist aber echt ziemliches Gefummel. Mit den gängigen CMS die ja eh oft in PHP geschrieben sind ist vlt. einfacher.

Verfasst: Dienstag 11. April 2006, 21:33
von Leonidas
jAN hat geschrieben:mein eigentlcihes project: ich will mit php aus dateien, die in einem verzeichnis sind ein menu erzeugen...
Und was hat das mit Python zu tun?

Verfasst: Mittwoch 12. April 2006, 07:21
von BlackJack
Wieso soll das unmöglich sein, oder habe ich die Anforderungen falsch verstanden!?

Code: Alles auswählen

from pprint import pprint

paths = ('Hauptthema.Unterthema1.Unterthema2.Untertheman.article',
         'Hauptthema.Unterthema2.Unterthema2.Untertheman.article',
         'Hauptthema2.Unterthema1.Unterthema2.Untertheman.article')

tree = dict()
for path in paths:
    node = tree
    for component in path.split('.'):
        node = node.setdefault(component, dict())
pprint(tree)