我試圖從列表中刪除具有相同第一和第三項但僅保留第一項的列表。示例列表和輸出:從列表中刪除某些項目重複的列表
li=[ [2,4,5], [1,3,5], [1,6,5] ]
output_list = [ [2,4,5], [1,3,5] ]
我寫的代碼需要很長時間才能執行,因爲原始列表包含數百萬個列表。
b_li = []
output_list = []
for x in li:
s = [ x[0], x[2] ]
if s not in b_li:
b_li.append(s)
output_list.append(x)
我該如何改進代碼?提前致謝。
使用一個集合而不是一個列表來記錄看到的第一個/最後一個對。 – Marcin
根據您的使用情況,您可以返回迭代器而不是創建新列表。它會爲你節省大量的內存。 – iurisilvio
可能重複? http://stackoverflow.com/questions/15037226/python-remove-duplicate-items-from-nested-list?rq=1 –