Python:字典列表
我有一个文件,其中包含以下格式的数据:请注意,这是一个示例,它看起来像什么,实际的文件包含超过2行 我读入文件,将文本转换为整数,并将它们存储到列表中。这是通过以下代码完成的:Python:字典列表,python,list,dictionary,Python,List,Dictionary,我有一个文件,其中包含以下格式的数据:请注意,这是一个示例,它看起来像什么,实际的文件包含超过2行 我读入文件,将文本转换为整数,并将它们存储到列表中。这是通过以下代码完成的: 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
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, 30, 5], [2, 64, 4]]
我需要把我的清单变成一本字典。一个人怎么做呢
Dictionary键应该是第一个元素我将播放猜猜你想要什么,并假设每行中的第一个数字实际上是某种顺序标识符,并且你想要
1 30 5
2 64 4
成为
1 : [30, 5]
2 : [64, 4]
所以
(我更改了file
的名称,因为file()
在Python中已经是一个内置函数,将该名称重新用于其他内容是不好的)
或者您可以使用字典理解,从您的项目列表开始:
itemDict = {item[0]: item[1:] for item in items}
假设您希望字典键是列表的第一个元素,下面是一个实现:
list = [[1, 30, 5], [2, 64, 4]]
dict = {}
for l2 in list:
dict[l2[0]] = l2[1:]
它通过迭代list
和子列表l2
工作。然后,我取l2
的第一个元素并将其指定为dict
的键,然后取l2
的其余元素并将其作为值
结果是完成的字典
{1:[30,5],2:[64,4]}
您希望字典键是什么?在您的示例中,写出最终结果应该是什么。我唯一能想到的是{1:[30,5],2:[64,4]}
。。。但这也有它的问题,例如,如果有两行以数字1开头怎么办?顺便说一句,你为什么一开始就想要一本字典?将数字列表存储为数字列表有什么问题?我有一种感觉,这将成为一个需要解决的问题,或者您将如何获得以下内容:items=((1,30,5),(2,64,4)),这仍然是一个字典吗?不,这是一个元组。字典必须有一个键值对,就像哈希表一样。另外,你在课程中的关键是什么?第一个值?如何实现元组?正确,我的键是对应于ID的第一个值,要声明元组,只需执行tuple=((1,30,5),(2,64,4))
,但如果要更改list->tuple,除了调用tuple(list)
将二级列表转换为元组之外,还需要一个for循环,我可以找到1D列表到元组的实现,但是很抱歉,我目前不知道如何实现2D转换:-(。。。
itemDict = {item[0]: item[1:] for item in items}
list = [[1, 30, 5], [2, 64, 4]]
dict = {}
for l2 in list:
dict[l2[0]] = l2[1:]