我需要编写一个函数来接受代表每个人朋友的列表列表,并需要将其转换为字典.所以输入[['A','B'],['A','C'],['A','D'],['B','A'],['C','B'],['C','D'],['D','B'],['E']]应该返回{A:[B,C,D],B:[A],C:[B,D],D:[B],E:None}
输入:
[['A','B'],['A','C'],['A','D'],['B','A'],['C','B'],['C','D'],['D','B'],['E']]
Run Code Online (Sandbox Code Playgroud)
预期产出:
{A:[B,C,D],B:[A],C:[B,D],D:[B],E:None}
Run Code Online (Sandbox Code Playgroud)
目前我正在尝试以下方法:
s=[['A','B'],['A','C'],['A','D'],['B','A'],['C','B'],['C','D'],['D','B'],['E']]
output=dict.fromkeys((set([x[0] for x in s])),[ ])
for x in s:
if len(x)>1:
output[x[0]].append(x[1])
else:
output[x[0]].append(None)
Run Code Online (Sandbox Code Playgroud)
但是输出给了我每个键的所有值,而不是只返回相应的值
我得到的输出是:
{
'A': ['B', 'C', 'D', 'A', 'B', 'D', 'B', None],
'B': ['B', 'C', 'D', 'A', 'B', 'D', 'B', None],
'C': ['B', 'C', 'D', 'A', 'B', 'D', 'B', None],
'D': ['B', 'C', 'D', 'A', 'B', 'D', 'B', None],
'E': ['B', 'C', 'D', 'A', 'B', 'D', 'B', None]
}
Run Code Online (Sandbox Code Playgroud)