所以我创建了一个这样的列表:
list = [line.strip() for line in open('file.txt','r')]
这是我的清单的片段。
[
'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',
]
我想创建一个字典,其中第一个数字是键,后面的数字是值,但我希望它以int形式。
我不知道如何使用字典中涉及的类。
答案 0 :(得分: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]}
让我们分开吧。这部分将文件中的每一行拆分为空格并将它们转换为整数:
map(int, line.strip().split())
然后这部分创建行中第一项的字典到其余部分:
first2rest = dict( (arr[0], arr[1:]) for arr in arrs)
但是,正如@SethMMorton指出的那样,您将丢失数据,因为您列出的文件多次包含相同的密钥。