从列表中创建字典

use*_*566 0 python dictionary list

所以我创建了一个这样的列表:

list = [line.strip() for line in open('file.txt','r')]
Run Code Online (Sandbox Code Playgroud)

这是我的列表的片段.

[
 '1 2',
 '2 3',
 '2 3',
 '4 3 1',
 '3 4',
 '5 4 2 1',
 '4 4',
 '8 3 5 2',
 '5 7',
 '15 11 8 9 6 3 4',
]
Run Code Online (Sandbox Code Playgroud)

我想创建一个字典,其中第一个数字是键,后面的数字是值,但我希望它以int形式.

我不知道如何使用字典中涉及的类.

mdm*_*dml 5

这应该做的伎俩:

In [3]: arrs = [map(int, line.strip().split()) for line in open('file.txt')] 
In [4]: first2rest = dict( (arr[0], arr[1:]) for arr in arrs)

In [5]: first2rest
Out[5]: {1: [2], 2: [3], 3: [4], 4: [4], 5: [7], 8: [3, 5, 2], 15: [11, 8, 9, 6, 3, 4]}
Run Code Online (Sandbox Code Playgroud)

让我们分开吧.这部分将文件中的每一行拆分为空格并将它们转换为整数:

map(int, line.strip().split())
Run Code Online (Sandbox Code Playgroud)

然后这部分创建行中第一个项目的字典到其余部分:

first2rest = dict( (arr[0], arr[1:]) for arr in arrs)
Run Code Online (Sandbox Code Playgroud)

但是,正如@SethMMorton指出的那样,您将丢失数据,因为您列出的文件多次包含相同的密钥.