python反向/转置字典
我正在寻找一本关于python的词典,环顾四周后,我没有找到一个解决方案。有人知道我怎样才能把下面这样的字典翻过来作为输入: 因此,我得到了如下结果:python反向/转置字典,python,dictionary,Python,Dictionary,我正在寻找一本关于python的词典,环顾四周后,我没有找到一个解决方案。有人知道我怎样才能把下面这样的字典翻过来作为输入: 因此,我得到了如下结果: newgraph = {'A': [''], 'B': ['A'], 'C': ['A', 'B', 'D','F'], 'D': ['B', 'C'], 'E': [''], 'F': ['E']} 使用: 虽然将空字符串'放在空列表中似乎没有任何意义,
newgraph = {'A': [''],
'B': ['A'],
'C': ['A', 'B', 'D','F'],
'D': ['B', 'C'],
'E': [''],
'F': ['E']}
使用:
虽然将空字符串'
放在空列表中似乎没有任何意义,但肯定有可能:
for x in newgraph:
newgraph[x] = newgraph[x] or ['']
使用:
也可以不使用
defaultdict
。
在这里,我在新的dict中留下了空键,值为None
graph = {'A': ['B', 'C'],
'B': ['C', 'D'],
'C': ['D'],
'D': ['C'],
'E': ['F'],
'F': ['C']}
g = dict.fromkeys(graph.keys())
for k, v in graph.iteritems():
for x in v:
if g[x]: g[x] += [k]
else: g[x] = [k]
for k in sorted(graph.keys()):
print k, ':', g[k]
输出:
A : None
B : ['A']
C : ['A', 'B', 'D', 'F']
D : ['C', 'B']
E : None
F : ['E']
为什么C的结果中缺少F?对不起,这是一个输入错误!will Update为什么C的结果中缺少F,而E的结果为“F”?OP指定
'A'
应映射到包含空字符串的列表('A':['']
)。您的回答更有意义,因为如果您请求new\u graph['A']
您会得到一个空列表,这是一个更好的表示无值的表示。我不知道插入空列表是否有意义,因为defaultdict将根据需要创建它们。我刚才已经解决了这个问题。:)您是如何在打印时获得订单的。出于某种原因,我得到了>>>['A','B','E','D','F','M']
>>> from collections import defaultdict
>>> graph = {'A': ['B', 'C'],
... 'B': ['C', 'D'],
... 'C': ['D'],
... 'D': ['C'],
... 'E': ['F'],
... 'F': ['C']}
>>> new_graph = defaultdict(list)
>>> for ele in graph.keys():
... new_graph[ele] = []
...
>>> for k, v in graph.items():
... for ele in v:
... new_graph[ele].append(k)
...
>>> pprint(new_graph)
{'A': [],
'B': ['A'],
'C': ['A', 'B', 'D', 'F'],
'D': ['B', 'C'],
'E': [],
'F': ['E']}
graph = {'A': ['B', 'C'],
'B': ['C', 'D'],
'C': ['D'],
'D': ['C'],
'E': ['F'],
'F': ['C']}
g = dict.fromkeys(graph.keys())
for k, v in graph.iteritems():
for x in v:
if g[x]: g[x] += [k]
else: g[x] = [k]
for k in sorted(graph.keys()):
print k, ':', g[k]
A : None
B : ['A']
C : ['A', 'B', 'D', 'F']
D : ['C', 'B']
E : None
F : ['E']