আমি এখানে উল্লিখিত সমস্ত উত্তরগুলির কার্যকারিতা তুলনা করছি। যেমনটি প্রত্যাশা করা হয়েছিল, আরক্কুর set
ভিত্তিক অপারেশনটি দ্রুততম।
আরক্কুর সেট পার্থক্য - প্রথম (প্রতি লুপে 0.124 ইউএসসি)
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
সঙ্গে ড্যানিয়েল Pryden এর তালিকা বোঝার 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 ইউএসসি)
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
মoinনউদ্দিন কাদেরির ব্যবহার - চতুর্থ (প্রতি লুপে 0.972 ইউএসসি)
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 ইউএসসি)
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