是否可以初始化dict并附加到split()?

时间:2012-12-04 02:25:41

标签: python

在我的项目中,我正在尝试浏览一个包含许多字符串并将其拆分的文件。有多条线。我希望拆分字符串的每个部分进入一个字典,但我不确定这是否可能。现在我有:

while inFile:
    key, value = inFile.readline().lower().rstrip().rsplit(' ', 1)

我考虑过使用dict和zip,但我认为如果你有列表..

我的输入文件如下所示。 '$'是终点线。我想例如,'A B'是关键,'10'是价值。

A B 10 $
A C 4$
B D 29$
B E 1 $

1 个答案:

答案 0 :(得分:4)

您应该可以执行以下操作:

data = dict(line.lower().rstrip().rsplit(' ', 1) for line in inFile)

这是有效的,因为dict()可以接受可重复的键/值对,并且只要文件中的每一行至少包含一个空格,line.lower().rstrip().rsplit(' ', 1)就会产生一个双元素元组。

请注意,迭代文件对象会为您提供文件中的每一行,因此for line in inFile:优先于while inFile: line = inFile.readline()