我讀file.txt的,這下面的數據:追加數據到字典
Arjun 10th 20 88+
+ 77 76 36
如何使類作爲重點,並添加其他值對應key.which看起來像 {「10」 :['20',[88,77,76,36]]}
注意:行中的值以+符號結尾,下一行以+符號開頭,我們如何將它們插入到同一個列表中?
我讀file.txt的,這下面的數據:追加數據到字典
Arjun 10th 20 88+
+ 77 76 36
如何使類作爲重點,並添加其他值對應key.which看起來像 {「10」 :['20',[88,77,76,36]]}
注意:行中的值以+符號結尾,下一行以+符號開頭,我們如何將它們插入到同一個列表中?
儘管這個問題沒有得到很好的解釋,但我認爲你所要做的就是這樣。請檢查功能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)
:它正在爲此目的而工作!你能告訴我,如何用逗號(,)分開詞典
如果你希望這個值是一個以逗號分隔的所有數字的字符串,你應該替換例如'd [items [1]]的指令'd [items [1]] = items [2:]' ] =','.join(items [2:])'。無論如何,當你在這裏提出問題時,你需要提供更多細節。提供一個輸入(和輸出)應該是什麼樣子的例子,並且一些(pseudo? - )代碼也是有用的。 – Javier
請更正您的格式。就目前而言,我不確定你的文件實際上包含了什麼縮進和空行。 –
這是一個實際還是一個理論問題?目前還不清楚你在問什麼。如果它是一個實際問題,你使用什麼語言? – bosnjak
@ user3347570:請爲您的問題添加適當的標籤,以指明您正在使用的語言。另外,看看Markdown語法描述/編輯幫助,以可讀的方式正確地設置問題和評論的格式。 –