抱歉,我相信這是一個(gè)常見問題,但似乎無法找到所需結(jié)果的確切答案。我只想返回基于一個(gè)元素的列表列表中的唯一項(xiàng)目。例子;List = [[1,2],[2,3],[1,4],[1,5],[6,3]]期望的結(jié)果;List = [[2,3],[6,3]]由于 1 作為多個(gè)列表項(xiàng)中的第一個(gè)元素存在,因此我希望忽略所有這些項(xiàng)。有沒有一種簡(jiǎn)單的方法可以做到這一點(diǎn)?
1 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
它可能很誘人,list.count但如果天真地使用它,它會(huì)使使用它的解決方案變得 O(n^2)。
O(n) 解決方案將使用collections.Counter:
from collections import Counter
nested_list = [[1,2],[2,3],[1,4],[1,5],[6,3]]
counter_map = Counter(sublist[0] for sublist in nested_list)
print(counter_map)
output = [sublist for sublist in nested_list if counter_map[sublist[0]] == 1]
print(output)
輸出
Counter({1: 3, 2: 1, 6: 1})
[[2, 3], [6, 3]]
添加回答
舉報(bào)
0/150
提交
取消