import random #generate random list in range min_limit, max_limit, of size elements def make_random_list(size, min_limit, max_limit): return [random.randint(min_limit, max_limit) for i in range(size)] #return [random.randint(min_limit, max_limit) for _ in range(size)] #create and returns list of evens and list of odds from existing list def make_even_odd(my_list): even=[item for item in my_list if item%2==0] odd=[item for item in my_list if item%2!=0] return even,odd #make new list where all evens replaced with specific value def make_new(my_list, value): return [value if item%2==0 else item for item in my_list] #IMPORTANT! list comprehension approach cannot change original list #write a function that CHANGES original list by replacing all evens with the #value def replace(my_list, value): for i in range(len(my_list)): if(my_list[i]%2==0): my_list[i]=value #IMPORTANT: to change original list we have to use for i in range(size) #using for item in my_list will not work #TRY THIS: def replace1(my_list, value): for item in my_list: if(item%2==0): item=value def main(): my_list=make_random_list(10,-10,10) print("original list",my_list) evens, odds=make_even_odd(my_list) print("evens and odds",evens, odds) new_list=make_new(my_list, 100) print("original list", my_list) print("new list after replacement",new_list) #IMPORTANT! list comprehension approach cannot change original list replace(my_list, -1) print("original list", my_list) print("original list after replacement",my_list) #using for item in my_list and it doesn't work to change the list my_list=make_random_list(10,-10,10) replace1(my_list,-2) print("original list", my_list) print("original list after replacement",my_list) main()