我在我的代碼中有一個非常醜陋的循環,這實際上減慢了我的程序。循環基本上執行字典比較,其中如果dict_A
中的特定鍵與dict_B
中的相同,則對於所有匹配,執行將被寫入文件的排序。幫助加快Python中的字典排序循環?
for k, v in A_dict.items():
for i, value in B_dict.items():
if k == value[0]:
sorted_B = [list(value) for key, value in groupby(sorted(B_dict.values()), key=itemgetter(1,2))]
outfile.write('{0}\t{1}\t{2}\t{3}\t{4}\t{5}\n'.format (i, k, v, value[1], value[2], value[3])
不幸的是,在字典中都包含了一萬件。除了把這些數據放入數據庫然後排序,沒有人有任何建議如何加快這個循環?謝謝您的幫助。
你的代碼比較了一個鍵和一個值,但是你的文本描述了只比較值。那麼什麼是「匹配」?價值觀是一樣的嗎?另外,當你使用'items()'方法時,會創建一個新的列表。您可以使用A_dict中的鍵直接從B_dict中獲取。 – Keith
@凱斯謝謝你的收穫。希望我的問題現在已經很清楚了 - 我將匹配一個字典(dict_A)中的密鑰與另一個字典中的值(dict_B) – drbunsen
因此,當您匹配時,您想要寫入文件的內容是什麼? – agf