亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對字符串列表中的元素進行分組并將它們轉換為字典?

如何對字符串列表中的元素進行分組并將它們轉換為字典?

米琪卡哇伊 2022-10-05 17:52:18
所以我的任務是將字符串列表轉換為元組字典。字典的鍵和值由空字符串分隔。對于字典,鍵應該是學生的名字,兩個值應該是他們的分數和等級。成績應該是字符串形式。列表如下:['John','85 A','90 A+','','David','71 B-','80 A-','','Liz','95 A+','66 C+']這應該給我一個結果:{'John':([85,90],['A','A+']),'David':([71,80],['B-','A-']),'Liz':([95,66],['A+','C+']}我正在自學元組和字典,所以我不知道如何將字符串分成與鍵對應的兩部分。也不知道如何通過 '' 空字符串將它們分組......任何幫助將不勝感激:)
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

這是一個新的建議解決方案。


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)

首先,我們將列表除以空格。我們知道列表不會以空格結尾,因此在遍歷列表之后,我們將 tmp 列表附加到我們的 newList 中。最后的 newList 看起來像這樣。


[['John', '85 A', '90 A+'], ['David', '71 B-', '80 A-'], ['Liz', '95 A+', '66 C+']]

現在我們可以輕松地遍歷每個學生。我們知道第一個值將是鍵,任何后續值都將是數字和字符等級。由于第一個值是鍵,我們可以創建一個包含 2 個空列表的元組,用于數字和字符等級。由于我們正在遍歷一個特定的學生,我們知道第一個元素是字典的鍵,因此我們可以將我們解析的內容附加到該字典中。


我們的結果是


{'John': ([85, 90], ['A', 'A+']), 'David': ([71, 80], ['B-', 'A-']), 'Liz': ([95, 66], ['A+', 'C+'])}



查看完整回答
反對 回復 2022-10-05
  • 1 回答
  • 0 關注
  • 85 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號