2016-04-28 347 views
0

如何從下面的while循環創建字典? infile中從一個所謂的輸入文件,其具有以下內容讀取:從while循環創建字典(Python)

分鐘: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(',') 

我試圖ŧ o do基本上是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

請嘗試以下代碼。

我相信,你會需要在字典中的「總和」。如果不是,只需添加一個條件來刪除它。

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 
+0

謝謝。這正是我想要的。我剛剛添加了orderedDict myDictionary = {}' 'myDictionary = collections.OrderedDict()' – Werner

+0

謝謝,你能接受我的答案嗎?感謝您的幫助。 – pmaniyan