【发布时间】:2019-05-05 06:29:25
【问题描述】:
我需要编写一个函数,该函数接受代表每个人的朋友的列表列表,并且需要将其转换为字典。
所以[['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']]
预期输出:
{A:[B,C,D],B:[A],C:[B,D],D:[B],E:None}
目前我正在尝试以下方法:
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)
但是输出给了我每个键的所有值,而不是只返回相应的值
我得到的输出是:
{
'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]
}
【问题讨论】:
标签: python python-3.x list dictionary