Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import timeit
- def sample_code():
- lst, v = [1, 5, 3, 4, 5, 6, 7, 5, 5, 10], 5
- remove_equal(lst, v)
- print(lst, v) # [1, 3, 4, 6, 7, 10] 5
- def remove_equal_listcomprehension(lst: list, v):
- new_lst = [e for e in lst if e != v]
- lst.clear()
- lst.extend(new_lst)
- del new_lst
- def remove_equal_for(lst, v):
- for i, e in reversed(list(enumerate(lst))):
- if e == v:
- del lst[i]
- def remove_equal_while(lst, v):
- new_lst = []
- pop = lst.pop
- append = new_lst.append
- while True:
- try:
- e = pop()
- except IndexError:
- break
- if e == v:
- del e
- else:
- append(e)
- new_lst.reverse()
- lst.extend(new_lst)
- del new_lst
- remove_equal = remove_equal_listcomprehension
- # remove_equal = remove_equal_for
- # remove_equal = remove_equal_while
- if __name__ == '__main__':
- sample_code()
- print(timeit.timeit(
- "remove_equal_listcomprehension([1, 2, 3, 4, 5, 6, 7, 8, 9 ,10], 5)",
- "from remove_equal import remove_equal_listcomprehension",
- number=1000000))
- print(timeit.timeit(
- "remove_equal_for([1, 2, 3, 4, 5, 6, 7, 8, 9 ,10], 5)",
- "from remove_equal import remove_equal_for",
- number=1000000))
- print(timeit.timeit(
- "remove_equal_while([1, 2, 3, 4, 5, 6, 7, 8, 9 ,10], 5)",
- "from remove_equal import remove_equal_while",
- number=1000000))
Add Comment
Please, Sign In to add comment