※ 引述《stba5328 (St. Ba)》之銘言:
: 想請問一下
: 我想從x, y兩個元素數量相等list當中,刪除所有值為-9999的項,
: 並且另一list同index的項目也要刪除,但因為list中大概有180萬筆,
: -9999的聯集數量大概57萬筆,該如何加速以下的程序呢?
: def get_index(a):
: lst = [i for i, j in enumerate(a) if j == -9999]
: return lst
: indx = get_index(x)
: indy = get_index(y)
: indlst = list(set(indx) | set(indy))
: xlst = [j for i, j in enumerate(x) if i not in indx]
: ylst = [j for i, j in enumerate(y) if i not in indy]
最高指導原則:各 list 中各個元素只看一次
因為你有那麼多資料, 當然是看越少次越好
所以只能用一個 for 迴圈, 就要把兩個串列走完
可以這樣想: