我想從列表中刪除所有重複列表。Python:如何刪除列表中的重複列表?
所以我有這樣的列表清單。
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
我想有:
b = [[1,2],[3,4,5]]
我不知道該怎麼辦。
謝謝
我想從列表中刪除所有重複列表。Python:如何刪除列表中的重複列表?
所以我有這樣的列表清單。
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
我想有:
b = [[1,2],[3,4,5]]
我不知道該怎麼辦。
謝謝
你可以使用一組:
b_set = set(map(tuple,a)) #need to convert the inner lists to tuples so they are hashable
b = map(list,b_set) #Now convert tuples back into lists (maybe unnecessary?)
或者,如果你喜歡列表理解/發電機:
b_set = set(tuple(x) for x in a)
b = [ list(x) for x in b_set ]
最後,如果順序很重要,你可以隨時分類b:
b.sort(key = lambda x: a.index(x))
如果列表的順序不重要,請參閱mgilson的答案。如果您想保留訂單,請執行如下操作:
b = list()
for sublist in a:
if sublist not in b:
b.append(sublist)
這會將訂單保留在原始列表中。但是,它比使用集合更慢,更冗長。
也謝謝你,你的方法很有趣,但我不需要保持順序。 – user1507156
如果你想要某些東西是唯一的,那麼一套是要走的路。 :) – mgilson
Thnak你,這正是我想要的。 – user1507156