You only return something when if sinRep == dondeborrar
fails and then during the loop if(sinRep == sinRep_AUX)
succeeds.
You can solve these problems by moving the return
statement to the end of the function.
def elimina_Rep(dondeborrar, cantidadNecesaria, fichcompleto):
sinRep = [] # Donde almacenaremos las NO repetidas
sinRep_AUX = [] # Para borrar en la borrada, (varios ciclos de borrado)
for elem in dondeborrar: # Primera busqueda de elementos duplicados
if(elem not in sinRep): sinRep.append(elem) # Obtenemos una lista sin repeticiones
if sinRep == dondeborrar : pass # Comprobamos que haya diferencia de cantidad entre ambas
else:
while(sinRep != sinRep_AUX):
dif = (cantidadNecesaria - len(sinRep)) # Obtenemos cuantos elementos hemos borrado
for i in range(0,dif): # Generamos tantas nuevas entradas como las que hemos borrado
sinRep.append(random.choice(fichcompleto)) # Obtenemos una nueva lista completa (pero con posibles repeticiones)
for j in sinRep: # Comprobamos que no haya repeticiones de la primera busqueda
if(j not in sinRep_AUX): # Segunda busqueda de elementos duplicados
sinRep_AUX.append(j) # Obtenemos una lista sin repeticiones sinRep_AUX desde la primera sin rep
if(sinRep == sinRep_AUX):
break
else:
sinRep = sinRep_AUX
sinRep_AUX = []
return sinRep_AUX
0
solved Python function return ‘None’ list