作者TuCH (谬客)
看板Python
标题Re: [问题] 整理合并两个列表资料
时间Tue Oct 26 12:32:56 2021
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://webptt.com/cn.aspx?n=bbs/Python/M.1635222778.A.9E9.html
1F:推 mate99: 感谢让我知道还有这种解法 10/26 16:15