2012-08-30 42 views

回答

42

你可以使用一组:

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)) 
+0

如果你想要某些东西是唯一的,那么一套是要走的路。 :) – mgilson

+0

Thnak你,这正是我想要的。 – user1507156

8

如果列表的顺序不重要,请参阅mgilson的答案。如果您想保留订单,请执行如下操作:

b = list() 
for sublist in a: 
    if sublist not in b: 
     b.append(sublist) 

这会将订单保留在原始列表中。但是,它比使用集合更慢,更冗长。

+0

也谢谢你,你的方法很有趣,但我不需要保持顺序。 – user1507156