前言:
list1 = [[time1,code1],[time2,code2],[time3,code3]…[timek,codek]]
資料庫表app01_programeinfo對應django子產品函數ProgrameInfo

list1中所有code在資料庫表中都有對應的name中文名,程式目的是用中文名替換掉list1中相應的code,組成新表傳回
#程式1:
n = len(list1)
for i in range(n):
v_list = models.ProgrameInfo.objects.filter(code=list1[i][1]) #對于list1中每個code,都連接配接搜尋資料庫表一次,擷取Quaryset對象;
for row in v_list:
list1[i][1] = row.name #取相應的name指派給list1的code
#要進行n次連接配接資料庫查詢,且資料庫表較大,過程用時2.5min
#程式2:
n = len(list1)
v_list = models.ProgrameInfo.objects.values('code', 'name') #查詢整個資料庫表一次,傳回對象v_list結構: <QuerySet [{'code': 'code1', 'name': 'name1'}, {'code': 'code2', 'name': 'name2'},...> 仍然是Quaryset對象,但内部是一個字典
for i in range(n):
for row in v_list:
if row['code'] == list1[i][1]:
list1[i][1] = row['name']
#這裡隻需要連接配接資料庫查詢一次,周遊字典時間相對較快,過程用時<1min,大幅縮減
肯定還有更好的優化方法,進一步縮減用時,歡迎大家留言指教!