私はいくつかのテストを行いました:
test_lists.py
a = range(1, 1000)
b = range(2, 1002)
tmp = []
for i in a:
if(i not in b):
tmp.append(i)
test_set_list_comprehensions.py
a = range(1, 1000)
b = range(2, 1002)
b = set(b)
[aa for aa in a if aa not in b]
test_set.py
a = range(1, 1000)
b = range(2, 1002)
list(set(a).difference(set(b)))
そしてそれはtimeitが言うことです:
~$ python -m timeit 'import test_lists'
1000000 loops, best of 3: 0.671 usec per loop
~$ python -m timeit 'import test_set_list_comprehension'
1000000 loops, best of 3: 0.766 usec per loop
~$ python -m timeit 'import test_set'
1000000 loops, best of 3: 0.656 usec per loop
したがって、最良のものは次のように思われます。
test_set.py
a = range(1, 1000)
b = range(2, 1002)
list(set(a).difference(set(b)))