python字典问题

python字典问题,python,Python,n的输出形式为:-((6,5),'north',1) 我正在为它制作一个dict child…其中(6,5)是键,north和1是值。我需要将(6,5)作为键,将作为方向…我想继续添加所有值,直到,而循环继续听起来你想要一个字典列表,但上下文太少,很难判断 my_list = [] while some_loop_condition: child = dict(( t[0], t[1:]) for t in n ) my_list.append(child) 听起来你想要一个字

n的输出形式为:-
((6,5),'north',1)


我正在为它制作一个dict child…其中
(6,5)
是键,
north
1
是值。我需要将
(6,5)
作为键,将
作为方向…我想继续添加所有值,直到
,而
循环继续

听起来你想要一个字典列表,但上下文太少,很难判断

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

听起来你想要一个字典列表,但是上下文太少很难分辨

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

如果要将所有键/值对保存在一个dict中(当然,所有键都是不同的),请执行以下操作:

如果你想要一份目录,@San的答案很好。如果您想要一个不一定包含所有不同键的dict,以及每个键对应的值,则需要一个元组列表:

import collections
totaldict = collections.defaultdict(list)

for ...whatever your loop is...:
    ...
    for t in n:
        totaldict[t[0]].append(t[1:])
可能还有其他的意义,你可能会说“保留这个词汇表的所有价值”,但像往常一样,不可能准确地猜测你想要表达的许多可能的意义中的什么

编辑:从OP的编辑中(他的问题得到了很大的澄清,尽管我已经在他之前的一些问题中询问了许多模糊的方面),他不一定需要一个dict——当他最终到达一个被问题对象视为“解决方案”的节点时,他需要能够追溯任何路径(或“目标”)


OP对Q的编辑现在似乎神秘地消失了,但如果(我隐约记得)他跳过了以前推到堆栈上的任何节点,那么一个dict就可以了,因为每个节点最多访问一次(因此,没有重复的键)--但是,以节点为键的dict条目不应指向节点的后继者(在从目标向后追踪路径时明显无用!),而应指向导致访问此节点的前辈(以及从直接前辈到此节点的方向)。根的节点条目应为空(因为它没有前置项)。

如果要将所有键/值对保留在一个dict中(当然,所有键都是不同的):

如果您想要一个dict列表,@San的答案很好。如果您想要一个不一定包含所有不同键的dict,并且每个键的对应值都包含一个元组列表:

import collections
totaldict = collections.defaultdict(list)

for ...whatever your loop is...:
    ...
    for t in n:
        totaldict[t[0]].append(t[1:])
可能还有其他的意义,你可能会说“保留这个词汇表的所有价值”,但像往常一样,不可能准确地猜测你想要表达的许多可能的意义中的什么

编辑:从OP的编辑中(他的问题得到了很大的澄清,尽管我已经在他之前的一些问题中询问了许多模糊的方面),他不一定需要一个dict——当他最终到达一个被问题对象视为“解决方案”的节点时,他需要能够追溯任何路径(或“目标”)


OP对Q的编辑现在似乎神秘地消失了,但如果(我隐约记得)他跳过了以前推到堆栈上的任何节点,那么一个dict就可以了,因为每个节点最多访问一次(因此,没有重复的键)--但是,以节点为键的dict条目不应指向节点的后继者(在从目标向后追踪路径时明显无用!),而应指向导致访问此节点的前辈(以及从直接前辈到此节点的方向)。根的节点项应为空(因为它没有前置项)。

如果循环在外部定义“child”,并在内部引用它:

e、 g:


看起来您希望在循环外部定义“child”,并在内部引用它:

e、 g:


查看整个
while
loop将有助于查看整个
while
loop将保留所有条目……但我只需要提供位于字典第二位的方向列表((4,5):北,1),(7,5):南,1).如何获得这些方向它将保留所有条目…但我只需要提供位于字典第二位的方向列表((4,5):北,1),(7,5):南,1)。如何得到这些directions@Shilpa:非常好,谢谢。另一个小贴士:如果您发现问题的标题更有意义(而不是“Python X问题”或“Python中的X”),这也将有助于吸引可能希望回答这些问题的人。我建议你读@Shilpa:很好,谢谢。另一个小贴士:如果您发现问题的标题更有意义(而不是“Python X问题”或“Python中的X”),这也将有助于吸引可能希望回答这些问题的人。我建议你读一读