2014-03-14 189 views
0

我讀file.txt的,這下面的數據:追加數據到字典

 Arjun 10th 20  88+ 

     +  77 76  36   

如何使類作爲重點,並添加其他值對應key.which看起來像 {「10」 :['20',[88,77,76,36]]}

注意:行中的值以+符號結尾,下一行以+符號開頭,我們如何將它們插入到同一個列表中?

+3

請更正您的格式。就目前而言,我不確定你的文件實際上包含了什麼縮進和空行。 –

+0

這是一個實際還是一個理論問題?目前還不清楚你在問什麼。如果它是一個實際問題,你使用什麼語言? – bosnjak

+1

@ user3347570:請爲您的問題添加適當的標籤,以指明您正在使用的語言。另外,看看Markdown語法描述/編輯幫助,以可讀的方式正確地設置問題和評論的格式。 –

回答

0

儘管這個問題沒有得到很好的解釋,但我認爲你所要做的就是這樣。請檢查功能words,並告訴我這是或多或少在正確的方向。

def words(d, auxList): 
    # Variables to save state between lines 
    curKey = None 
    values = [] 

    for line in auxList: 
     items = line.split() 
     # Check if we have values already from a previous line 
     if curKey is None: 
      # Check if we see a continuation symbol (+) 
      if items[-1][-1] == '+': 
       # and remove it from the value 
       items[-1] = items[-1][:-1] 
       # Save the info in this line 
       curKey = items[1] 
       values = items[2:] 
      else: 
       # If all the information is in one simple line 
       d[items[1]] = items[2:] 
     else: 
      # Check if we see a continuation symbol (+) 
      if items[-1][-1] == '+': 
       # and remove it from the value 
       items[-1] = items[-1][:-2] 
       # Save the info in this line and accumulate it 
       # with the previous ones 
       values.extend(items[1:]) 
      else: 
       # Update dictionary when we have all the values 
       d[curKey] = values + items[1:] 
       # and reset state 
       curKey = None 
       values = [] 

    # Be sure to save the last line if there is no more info 
    # Maybe it is not necessary 
    if curKey is not None: 
     d[curKey] = values 


d = {} 
a2 = [line.strip() for line in myfile.readlines()] 
words(d, a2) 
+0

:它正在爲此目的而工作!你能告訴我,如何用逗號(,)分開詞典中的值? 你也可以建議我,我如何使用逗號分隔八個空格值? – user3347570

+0

如果你希望這個值是一個以逗號分隔的所有數字的字符串,你應該替換例如'd [items [1]]的指令'd [items [1]] = items [2:]' ] =','.join(items [2:])'。無論如何,當你在這裏提出問題時,你需要提供更多細節。提供一個輸入(和輸出)應該是什麼樣子的例子,並且一些(pseudo? - )代碼也是有用的。 – Javier