Попытка создать что-то, используя словари, но я потерялся - PullRequest
0 голосов
/ 01 апреля 2011

Я не совсем уверен, как лучше всего подойти к следующему в python ... Я знаю, чего хочу, и знаю, как я этого хочу, но я не знаю, является ли моя идея лучшим подходомк тому, что я ищу.

"Name":"path",contains[]
"Folder":"C:/blah/blah/folder",contains["file1","file2","file3"]

как

things={}
things["Folder"]="C:/blah/blah/folder" AND contains["file1","file2","file3"]

, так что его можно использовать как:

for folder,path,contents in things.iteritems():  
    print("%s @ \"%s\" containing:\n\t")%(folder,path)  
    for file in contents:  
        print("%s\n\t")%(file)  

и как я могу добавить вещик содержанию, что-то вроде

content.append(blah)

Любая помощь будет оценена!Спасибо.

Ответы [ 3 ]

1 голос
/ 01 апреля 2011

Как то так?

>>> d = {}
>>> d["Folder"] = ["C:/blah/blah/Folder", ["file1","file2","file3"]]
>>> d["more"] = ["/home/mydir", ["file1","file2","file3"]]
>>> d["Folder"][0]
'C:/blah/blah/Folder'
>>> d["Folder"][1]
['file1', 'file2', 'file3']
>>> d["Folder"][1].append("file4")
>>> d["Folder"][1]
['file1', 'file2', 'file3', 'file4']
>>> for entry in d:
...     d[entry][1].append("newfile")
...
>>> d
{'Folder': ['C:/blah/blah/Folder', ['file1', 'file2', 'file3', 'file4', 'newfile']],
 'more': ['/home/mydir', ['file1', 'file2', 'file3', 'newfile']]}
0 голосов
/ 01 апреля 2011
things = {}
things["Folder"] = ("C:/blah/blah/folder", ["file1","file2","file3"])

for folder, (path, contents) in things.iteritems():
    print("%s @ \"%s\" containing:\n\t")%(folder,path)  
    for file in contents:  
        print("%s\n\t")%(file)  
0 голосов
/ 01 апреля 2011

Я думаю, что вы ищете вложенный словарь:

things = {"Folder" : {"path" : "C:/blah/folder", "contents" : ["file1", "file2"]},
          "Directory" : {"path" :"C:/foo/dir", "contents" : ["fileX", "fileY"]}}
for folder, info in things.iteritems():
  print("%s @\"%s\" containing:\n\t")%(folder, info["path"])
  for file in info["contents"]:
    print("%s\n\t")%(file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...