从while循环创建一个Dictionary(Python)

时间:2016-04-28 11:34:08

标签: python-2.7 dictionary

如何在下面的while循环中创建一个Dictionary? infile从一个名为input的文件中读取,该文件包含以下内容:

分钟:1,23,62,256

最大:24,672,5,23

和:22,14,2,3,89

P90:23,30,45.23

P70:12,23,24,57,32

infile = open("input.txt", "r")
answers = open("output.txt", "w")

while True:
    line = infile.readline()
    if not line: break
    opType = line[0:3]
    numList = (line[4:len(line)])
    numList = numList.split(',')

我尝试做的基本上是2个列表,一个具有操作名称(opType),另一个具有数字。从那里我想创建一个看起来像这样的字典

myDictionary = {
    'min': 1,23,62,256,
    'max': 24,672,5,23,
    'avg': 22,14,2,3,89,
    'P90': 23,30,45.23,
    'P70': 12,23,24,57,32,
}

原因是我需要将操作类型调用为自制函数,然后执行该操作。我会把这部分搞清楚。我目前只需要帮助从while循环中创建字典。

我正在使用python 2.7

1 个答案:

答案 0 :(得分:1)

请尝试以下代码。

我相信,你需要总结'也在字典里。如果没有,只需添加条件即可将其删除。

myDictionary = {}
with open('input.txt','r') as f:
    for line in f:
        x = line.split(':')[1].rstrip().split(',')
        for i in xrange(len(x)):
            try:
                x[i] = int(x[i])
            except ValueError:
                x[i] = float(x[i])
        myDictionary[line.split(':')[0]] = x
print myDictionary