Python: List of lists to dictionary
我有一个文件,其中包含以下格式的数据:请注意,这是一个示例,实际文件包含2行以上
1 2 | 1 30 5 2 64 4 |
我读取文件,将文本转换为整数,并将它们存储到一个列表中。这是通过以下代码完成的:
1 2 3 4 5 | file = open("dataFile.txt","r") items = [] for line in file: line = map(int,line.split()) #convert the text data to integers items.append(line) #add text data to list |
列表的当前格式如下:
1 | [[1, 30, 5], [2, 64, 4]] |
我需要把我的列表变成一本字典。你会怎么做?
字典键应该是第一个元素
我想猜猜你想要什么,假设每行的第一个数字实际上是某种顺序标识符,你想要
1 2 | 1 30 5 2 64 4 |
成为
1 2 | 1 : [30, 5] 2 : [64, 4] |
所以…
1 2 3 4 5 6 | with open("dataFile.txt") as dataFile: items = {} for line in dataFile: line = map(int, line.split()) #convert the text data to integers key, value = line[0], line[1:] items[key] = value |
(我更改了EDOCX1的名称(0),因为
或者,您可以使用字典理解,从项目列表开始:
1 | itemDict = {item[0]: item[1:] for item in items} |
假设您希望字典键是列表的第一个元素,下面是一个实现:
1 2 3 4 5 | list = [[1, 30, 5], [2, 64, 4]] dict = {} for l2 in list: dict[l2[0]] = l2[1:] |
它通过迭代
结果是完成的词典