Bueno, como supongo ya entregó la tarea, veamos:
Una cosa importante, en python no existen los arreglos, son listas de listas, para "arreglos" ,vectores o matrices se usa la biblioteca numpy
Planteo:
Dadas dos listas pobladas con elementos de tipo carácter, se pide generar una tercera sólo con los elementos que estén repetidos en ellas. Considerar que la nueva lista "no contenga elementos duplicados."
modifico las listas para que tengan en ellas elementos repetidos
lista_1=['casa','edificio','lapiz','pelota','tabla','canica','consola','juguete','moto','goma','goma','canica']
lista_2=['goma','muñeca','tren','canica','peonza','lapiz','colchoneta','toalla','monopatin','ordenador','goma']
si uso tu función devuelve:
['lapiz', 'canica', 'goma', 'goma', 'goma', 'goma', 'canica']
que a toda vista no cumple con la consigna que no tenga elementos duplicados en la lista resultante.
se podría solucionar con:
pero... para los que quieren aprender comprensión de listas esto se reduce a:
Las funciones usan return para devolver un valor, los print como retorno de la función son una mala práctica.
Y otra forma, es directamente con la función de conjuntos provista por python:
varias formas de llegar a lo mismo, con menos código u operaciones del procesador.