1 回答
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是一個(gè)新的建議解決方案。
list = ['John','85 A','90 A+','','David','71 B-','80 A-','','Liz','95 A+','66 C+']
newList = []
tmp = []
for element in list:
if (element != ''):
tmp.append(element)
else:
newList.append(tmp)
tmp = []
newList.append(tmp)
students = {}
for student in newList:
curStudent = student[0]
students[curStudent] = ([], [])
for i in range(1, len(student)):
splitStr = student[i].split(" ")
students[curStudent][0].append(int(splitStr[0]))
students[curStudent][1].append(splitStr[1])
print(students)
首先,我們將列表除以空格。我們知道列表不會(huì)以空格結(jié)尾,因此在遍歷列表之后,我們將 tmp 列表附加到我們的 newList 中。最后的 newList 看起來(lái)像這樣。
[['John', '85 A', '90 A+'], ['David', '71 B-', '80 A-'], ['Liz', '95 A+', '66 C+']]
現(xiàn)在我們可以輕松地遍歷每個(gè)學(xué)生。我們知道第一個(gè)值將是鍵,任何后續(xù)值都將是數(shù)字和字符等級(jí)。由于第一個(gè)值是鍵,我們可以創(chuàng)建一個(gè)包含 2 個(gè)空列表的元組,用于數(shù)字和字符等級(jí)。由于我們正在遍歷一個(gè)特定的學(xué)生,我們知道第一個(gè)元素是字典的鍵,因此我們可以將我們解析的內(nèi)容附加到該字典中。
我們的結(jié)果是
{'John': ([85, 90], ['A', 'A+']), 'David': ([71, 80], ['B-', 'A-']), 'Liz': ([95, 66], ['A+', 'C+'])}
添加回答
舉報(bào)
