小编Sah*_*yar的帖子

将列表列表转换为具有多个键值的字典

我需要编写一个函数来接受代表每个人朋友的列表列表,并需要将其转换为字典.所以输入[['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)

python dictionary list python-3.x

6
推荐指数
1
解决办法
79
查看次数

标签 统计

dictionary ×1

list ×1

python ×1

python-3.x ×1