###### tags: `Python` `Experiments`
# Find One Missing Element From List ( diff methods )
``` python
from memory_profiler import memory_usage
from timeit import timeit
def findmissing_set(list_1, list_2):
missing = set(list_1) - set(list_2)
assert(len(missing) == 1), "There are more than one number missing"
return list(missing)[0]
def findmissing_in(list_1, list_2):
for i in list_1:
if not i in list_2:
return i
def findmissing_idx(list_1, list_2):
for i in list_1:
try:
list_2.index(i)
except ValueError:
return i
def findmissing_xor(list_1, list_2):
sum_xor = int()
for i in list_1:
sum_xor ^= i
for i in list_2:
sum_xor ^= i
return sum_xor
def findmissing_sum(list_1, list_2):
sum1 = int()
sum2 = int()
for i in list_1:
sum1 += i
for i in list_2:
sum2 += i
return sum1-sum2
if __name__ == '__main__':
# print(findmissing_set([4, 12, 9, 5, 16], [4, 12, 9, 16]))
# print(findmissing_in([4, 12, 9, 5, 16], [4, 12, 9, 16]))
# print(findmissing_idx([4, 12, 9, 5, 16], [4, 12, 9, 16]))
# print(findmissing_xor([4, 12, 9, 5, 16], [4, 12, 9, 16]))
# print(findmissing_sum([4, 12, 9, 5, 16], [4, 12, 9, 16]))
list_1 = [integer for integer in range(0, 100)]
list_2 = [integer for integer in range(0, 99)]
print("findmissing_set :\n\ttime: ", timeit(
"findmissing_set({}, {})".format(list_1,list_2), setup="from __main__ import findmissing_set"))
print("\tmemory : ", memory_usage(
(findmissing_set, (list_1, list_2))))
#==============================================================================================
print("findmissing_in :\n\ttime: ", timeit(
"findmissing_in({}, {})".format(list_1, list_2), setup="from __main__ import findmissing_in" ))
print("\tmemory : ", memory_usage(
(findmissing_in, (list_1, list_2))))
#==============================================================================================
print("findmissing_idx :\n\ttime: ", timeit(
"findmissing_idx({}, {})".format(list_1, list_2), setup="from __main__ import findmissing_idx"))
print("\tmemory : ", memory_usage(
(findmissing_idx, (list_1, list_2))))
#==============================================================================================
print("findmissing_xor :\n\ttime: ", timeit(
"findmissing_xor({}, {})".format(list_1, list_2), setup="from __main__ import findmissing_xor"))
print("\tmemory : ", memory_usage(
(findmissing_xor, (list_1, list_2))))
#==============================================================================================
print("findmissing_sum :\n\ttime: ", timeit(
"findmissing_sum({}, {})".format(list_1, list_2), setup="from __main__ import findmissing_sum"))
print("\tmemory : ", memory_usage(
(findmissing_sum, (list_1, list_2))))
```
## Output
```
findmissing_set:
time: 15.528574591000002
memory: [13.0390625, 13.046875, 13.046875]
findmissing_in:
time: 138.464003773
memory: [13.16015625, 13.16015625,
13.16015625, 13.16015625, 13.16015625]
findmissing_idx:
time: 163.50152925199998
memory: [13.2109375, 13.2109375, 13.2109375,
13.2109375, 13.2109375]
findmissing_xor:
time: 25.572368368000014
memory: [13.23046875, 13.23046875, 13.23046875]
findmissing_sum:
time: 20.179685679999977
memory: [13.31640625, 13.31640625, 13.31640625]
```