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

作者: TuCH (謬客)   2021-10-26 12:32:56
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]]
作者: mate99 (kkk)   2021-10-26 16:15:00
感謝讓我知道還有這種解法

Links booklink

Contact Us: admin [ a t ] ucptt.com