#!/usr/bim/python3 # ==================================================================== # shift a given character to the end of a random array # of ASCII characters # ==================================================================== import random import string import time n = 20000 # -------------------------------------------------------------------- # shift characters in an array (python list) # -------------------------------------------------------------------- def shift_to_end(source_arr,shift_arr): t = [] # chars not shifted tt = [] # chars shifted c = 0 # chars shifted count for a in source_arr: if a in shift_arr: tt.append(a) c += 1 else: t.append(a) t.extend(tt) return (c,t) # -------------------------------------------------------------------- # ---- main # -------------------------------------------------------------------- shift_chars = ['a','z'] array = [random.choice(string.ascii_letters) for _ in range(n)] start = time.time() scount,sarray = shift_to_end(array,shift_chars) end = time.time() print() print(f'shift chars = "{shift_chars}"') print(f'chars shifted = {scount}') print(f'elapsed time = {end-start} sec')