2012-05-28 10 views
5

संभव डुप्लिकेट:
Python: removing duplicates from a list of listsअजगर एक पंक्ति में unhashable तत्वों के साथ सूची की डुप्लिकेट को निकाल

मैं सूची है

a=[1,2,1,2,1,3] 

एक में सभी तत्वों hashable हैं कहो (उस मामले में), यह काम करेगा:

list(set(a)) 

लेकिन, अगर

a=[[1,2],[1,2],[1,3]] 

क्या?

+1

ये सेट में जोड़ने से पहले आप टुपल्स में बदल सकते हैं। – MattH

+1

[पाइथन: सूचियों की सूची से डुप्लिकेट को हटाने] के संभावित डुप्लिकेट [http://stackoverflow.com/questions/2213923/python-removing-duplicates-from-a-list-of-lists) http: // stackoverflow। कॉम/प्रश्न/480214/कैसे करें-आप-हटाएं-डुप्लीकेट-से-एक-सूची-इन-पायथन-whilst-preserving-order http://stackoverflow.com/questions/479897/how-do-you-remove -duplicates-from-a-list-in-python – jamylak

+0

बस एहसास हुआ कि यह कई अन्य प्रश्नों का डुप्लिकेट है, इसे बंद किया जाना चाहिए। – jamylak

उत्तर

10
>>> from itertools import groupby 
>>> a = [[1,2],[1,2],[1,3]] 
>>> [k for k,v in groupby(sorted(a))] 
[[1, 2], [1, 3]] 
0

इस सेट समझ सूचियाँ की सूची के लिए काम करता tuples का एक सेट का निर्माण करने के:

>>> {(tuple(e)) for e in a} 
set([(1, 2), (1, 3)]) 

तो कोई डुप्लिकेट के साथ फिर से सूचियों की एक सूची में बारी करने का उपयोग करें:

>>> [list(x) for x in {(tuple(e)) for e in a}] 
[[1, 2], [1, 3]] 
संबंधित मुद्दे