資源簡介 教學設計課程基本信息課題 第二章數組與鏈表 項目挑戰:學校微課平臺推薦功能設計教學目標1.理解數組和鏈表的區別 2. 掌握在實際項目中選擇合適的數據結構 3. 掌握在數組和鏈表在程序中的使用教學內容教學重點: 1. 設計不同的推薦要求并能選用對應的數據結構(數組、鏈表) 2. 掌握在程序中根據實際情況,為數組和鏈表設計合理的數據內容 教學難點: 1. 設計有創意且實用的推薦規則 2. 根據推薦算法設計合理的數據內容教學過程【任務導入】 學校新建了一個微課平臺,用來展示校內教師和學生自制的微課。為了更好地服務師生,學校想增加微課平臺的推薦功能,即當某個用戶點播了某個微課后,平臺會依據一定的規則推薦相關的微課。假如你作為平臺的設計者,現在需要你來開發實現這個微課平臺的推薦功能。 【建模討論】 當用戶點播操作時,按照一定的推薦規則有序推薦相關的微課視頻,微課點播數據涉及用戶,微課名稱,播放時間等。 問題1:有按照用戶類型推薦,也可以按照微課類型推薦,請問還有其他推薦規則嗎 問題2:所推薦的微課用數組存放還是用鏈表存放?兩者各有什么不同? 【設計數據的內容結構】 利用關鍵字查詢出記錄,并用字典存儲關鍵的數據,用數組進行提煉和排序 用同樣的方法也用鏈表進行類似的設計 【編寫程序并測試】 數組法: import pandas as pd df=pd.read_csv("wk_click.csv") def printdic(dic): max1=0 for key in dic: if len(key)>max1: max1=len(key) for key in dic: print(key.rjust(max1, ' '),":",dic[key]) n=len(lst) dic={} types=input("輸入年級") for i in range(n): if lst[i][1]==types: if lst[i][2] not in dic: dic[lst[i][2]]=1 else: dic[lst[i][2]]+=1 printdic(dic) menu=[[0,0]]*4 for i in range(4): for key,values in dic.items(): if dic[key]>menu[i][1] and [key,values] not in menu: menu[i]=[key,values] print(menu) 輸出展示 略 menu=[] head=0;p=1 n=len(dic) cnt=0 #構建無序鏈表 for key,values in dic.items(): menu.append([key,values,p]) p+=1 menu[-1][2]=-1 print(dic) def rclnk(lst,head,n): i=1 while lst[head][2]!=-1 and ilst[head][1]: lst[cur][2]=head head=cur else: while v<=lst[p][1] and p!=-1: q=p p=lst[p][2] lst[q][2]=cur lst[cur][2]=p if p==-1: pre=cur cur=nt return head head=linksort(menu) rclnk(menu,head,4) 輸出展示 略【評價】 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫