2016-04-28 16 views
0

どのように私のwhileループからディクショナリを作成できますか?whileループ(Python)からディクショナリを作成

分:1,23,62,256

最大:24,672,5,23

合計:22,14,2,3、INFILEは、以下の内容を持っている入力と呼ばれるファイルからの読み込み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

次のコードを試してみてください。

私は、あなたが辞書にも 'sum'が必要と思います。そうでない場合は、削除する条件を追加するだけです。

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

ありがとう、あなたは私の答えをrigtとして受け入れることができますか?あなたの助けに感謝します。 – pmaniyan

関連する問題