2010-07-18 87 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