2010-07-18 68 views
1

输出的格式为: - ((6,5),'north',1)Python字典问题的n

我想提出一个字典的孩子吧......在(6,5)是关键,north1是值。我需要保持(6,5)为关键字,north为方向....我想继续添加所有的值直到while循环继续

+4

这将有助于看到整个'while'环 – John 2010-07-18 02:43:32

回答

3

如果你想保留的所有键/值对在一个字典(和所有的按键都不同,当然):

totaldict = {} 

for ...whatever your loop is...: 
    ... 
    totaldict.update((t[0], t[1:]) for t in n) 

如果你想类型的字典列表,@圣的答案很好。如果你想与不一定所有不同按键,每个按键的对应值的元组的列表中的单个字典:

import collections 
totaldict = collections.defaultdict(list) 

for ...whatever your loop is...: 
    ... 
    for t in n: 
     totaldict[t[0]].append(t[1:]) 

可能有其他感官但您可能意味着“保持此dictioanary的所有值“来表示,但像往常一样,它不可能精确地猜出您想要的许多可能含义的。

编辑:从OP的编辑(备受澄清了他的问题,但许多阴暗的方面仍然是我已经问了一些他以前的问题),他不一定需要一个字典 - 他当他最终到达被问题对象认为是“解决方案”(或“目标”)的节点时,需要能够追踪任何路径向后

OP对Q的编辑现在似乎已经神秘地消失了,但是如果(如我模糊地回想起)他跳过先前被推入堆栈的任何节点,则一个字典将会执行,因为每个节点将在最多一次(因此,没有重复的键) - 然而,该字典的条目,与节点作为关键,不应该指向节点的后继(从目标跟踪路径信号无用!),但导致访问该节点的前驱(以及从该前一个节点取得的方向来到该节点)。根的节点条目应该是空的(因为它没有前驱)。

+0

让我编辑问题,然后你可以找到我真正的问题。 – Shilpa 2010-07-18 03:10:54

+0

我编辑了question.plz,看它 – Shilpa 2010-07-18 03:18:13

+0

@Shilpa:很好,谢谢。另一个提示:如果你发现对你的问题更有意义的标题(除了“Python X问题”或“Python中的X”),它也有助于吸引可能希望回答它们的人。我建议你阅读http://catb.org/esr/faqs/smart-questions.html – 2010-07-18 04:53:07

1

听起来你想要一个字典列表,但是很难用很少的上下文来讲述。

my_list = [] 
while some_loop_condition: 
    child = dict((t[0], t[1:]) for t in n) 
    my_list.append(child) 
0

看起来要定义“孩子”外,如果环路,并在引用它:

如:

child = {} 

while blah: 
    ... 
    child.update(dict((t[0], t[1:]) for t in n) 
    ... 
+0

它会保留所有的条目....但我只需要提供在字典第二位置的方向列表( (4,5):北,1),(7,5):南,1)。如何获得这些方向 – Shilpa 2010-07-18 03:37:44