यहां मैं यहां वर्णित सभी उत्तरों के प्रदर्शन की तुलना कर रहा हूं। जैसी कि उम्मीद थी, अर्कुक का set
आधारित ऑपरेशन सबसे तेज़ है।
अर्कु के सेट का अंतर - पहला (0.124 usec प्रति लूप)
mquadri$ python -m timeit -s "l1 = set([1,2,6,8]); l2 = set([2,3,5,8]);" "l1 - l2"
10000000 loops, best of 3: 0.124 usec per loop
set
देखने के साथ डैनियल प्राइडेन की सूची की समझ - दूसरा (0.302 usec प्रति लूप)
mquadri$ python -m timeit -s "l1 = [1,2,6,8]; l2 = set([2,3,5,8]);" "[x for x in l1 if x not in l2]"
1000000 loops, best of 3: 0.302 usec per loop
सादे सूची पर डोनट की सूची की समझ - तीसरा (0.552 usec प्रति लूप)
mquadri$ python -m timeit -s "l1 = [1,2,6,8]; l2 = [2,3,5,8];" "[x for x in l1 if x not in l2]"
1000000 loops, best of 3: 0.552 usec per loop
मोइनुद्दीनfilter
क्वाडरी का उपयोग - चौथा (0.972 usec प्रति लूप)
mquadri$ python -m timeit -s "l1 = [1,2,6,8]; l2 = set([2,3,5,8]);" "filter(lambda x: x not in l2, l1)"
1000000 loops, best of 3: 0.972 usec per loop
अक्षय हजारी के संयोजन का उपयोग reduce
+ +filter
पांचवां (प्रति पाश 3.97 usec)
mquadri$ python -m timeit "l1 = [1,2,6,8]; l2 = [2,3,5,8];" "reduce(lambda x,y : filter(lambda z: z!=y,x) ,l1,l2)"
100000 loops, best of 3: 3.97 usec per loop