Re: [問題] 整理合併兩個列表資料

看板Python作者 (謬客)時間3年前 (2021/10/26 12:32), 編輯推噓1(100)
留言1則, 1人參與, 3年前最新討論串2/4 (看更多)
list1 = ["國文","數學","自然"] list2 = [["a","國文",100],["a","數學",20],["a","自然",40], ["b","國文",30],["b","數學",100], ["c","自然",60]] data = {} for item in list2: if item[0] in data: data[item[0]][list1.index(item[1])] = item[2] else: data[item[0]] = [None for _ in range(len(list1))] data[item[0]][list1.index(item[1])] = item[2] final_res = [list([k,*v]) for k,v in data.items()] ※ 引述《mate99 (kkk)》之銘言: : 這邊分別有兩個列表,list1跟list2想要將兩個列表合併成list3的型態 : 請看以下範例 : List1是科目名稱, : List2是紀錄考生的科目分數列表,但是每個人並不是所有科目都有出來分數, : 現在我想要將list1與list2的資料做整合,合併成list3樣子,list3每個元素各代表一位 : 考生,第二階陣列第1個參數是考生名,第2,3,4就是依照list1順序所列的元素該考生的 : 科目分數,如果該考生沒有該考科紀錄,直接填入None, : 我在那邊使用迴圈兜還是兜不出來,請問這個程式該如何寫? : list1=["國文","數學","自然"] : list2=[["a","國文",100], : ["a","數學",20], : ["a","自然",40], : ["b","國文",30], : ["b","數學",100], : ["c","自然",60] : ] : list3=[["a",100,20,30], : ["b",30,100,None], : ["c",None,None,60]] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.22.167.103 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1635222778.A.9E9.html

10/26 16:15, 3年前 , 1F
感謝讓我知道還有這種解法
10/26 16:15, 1F
文章代碼(AID): #1XTuJwdf (Python)
文章代碼(AID): #1XTuJwdf (Python)