ana no te agobies
unknown
python
3 years ago
1.2 kB
4
Indexable
def generar_dni_aleatorio(numero_dnis: int): # Generamos un número aleatorio entre 100000000 y 999999999 para cada DNI numeros = np.random.randint(100000000, 999999999, size=numero_dnis) # Calculamos la letra del DNI a partir del número generado letras = "TRWAGMYFPDXBNJZSQVHLCKE" restos = numeros % 23 letra = [letras[valor] for valor in restos] # Creamos una lista de DNI como cadenas de 8 dígitos y una letra dnis = [f"{numero}{letra}" for numero, letra in zip(numeros.astype(str), letra)] # Convertimos la lista de DNI en un conjunto para eliminar los DNI repetidos dnis_unicos = set(dnis) # Si el número de DNI únicos es menor que el número de DNI solicitado, volvemos a generar DNI # hasta que el conjunto tenga el número de elementos solicitado while len(dnis_unicos) < numero_dnis: numeros = np.random.randint(100000000, 999999999, size=numero_dnis) restos = numeros % 23 letra = [letras[valor] for valor in restos] dnis = [f"{numero}{letra}" for numero, letra in zip(numeros.astype(str), letra)] dnis_unicos.update(dnis) # Devolvemos la lista de DNI únicos return list(dnis_unicos)
Editor is loading...