字典分配

时间:2017-12-27 20:21:30

标签: python python-3.x dictionary

listim=[['1' ,'2'], ['3' , '4'], ['1', '5'], ['4', '1']]

我正在尝试使用listim为每个数字制作字典,

我希望d = {' 1':2,4,5,' 2':1,' 3':4,(.. 。等等)}

我的代码是(我无法找到错误,但可能是关于词典):

a=1
dic={}
while a<6:
    for number in listim:
        if number[0]==a:
            if number[1] not in dic[a]:
                dic[a].append(number[1])
        elif number[1]==a:
            if number[0] not in dic[a]:
                dic[a].append(number[0])
        a+=1

我无法在网上找到足够的信息,(我知道我可以)。我希望我很清楚。谢谢

2 个答案:

答案 0 :(得分:1)

让我们使用list作为工厂从集合中使用defaultdict

from collections import defaultdict

d = defaultdict(list)

listim=[['1' ,'2'], ['3' , '4'], ['1', '5'], ['4', '1']]

for i in listim:
    d[i[0]].append(int(i[1]))

dict(d)

输出:

{'1': [2, 5], '3': [4], '4': [1]}

答案 1 :(得分:-1)

dic = {}
for k,v in listim:
    dic[k] = int(v)

甚至更短:

dic = {k:int(v) for k,v in listim}