Python: prueba si todos los dígitos comienzan desde % K digit

A veces podemos enfrentarnos a un problema en el que necesitamos encontrar para una lista si contiene números que son % K. Esta utilidad en particular tiene una aplicación en la programación día a día. Analicemos ciertas formas en que se puede lograr esta tarea.

Método n.º 1: usar la comprensión de listas + map()
Podemos abordar este problema convirtiendo los elementos en strings y luego probando el elemento inicial de la string y, si son % K, podemos devolver verdadero y luego convertir a conjunto y probar el tamaño del resultado para ser uno. La conversión se realiza mediante el mapa, la función de configuración se convierte en verificación de comprensión de conjunto y lista para el primer elemento de la string.

# Python3 code to demonstrate 
# Test if all digits starts from % K digit
# using list comprehension + map() 
  
# initializing list 
test_list = [65, 3, 92, 332] 
  
# printing original list 
print("The original list : " + str(test_list)) 
  
# initializing K 
K = 3
  
# using list comprehension + map() 
# Test if all digits starts from % K digit
res = len(set( not(int(sub[0]) % K) for sub in map(str, test_list))) == 1
  
# print result 
print("Does each element start with % K digit ? " + str(res)) 
Producción :

The original list : [65, 3, 92, 332]
Does each element start with % K digit ? True

Método n.º 2: Uso all()de la comprensión de listas +
Este es otro enfoque en el que se puede resolver este problema. En esto, usamos todas las funciones para verificar todos los elementos y devolver un resultado booleano y la comprensión de la lista hace la parte de la conversión de string por función str y verifica todos los elementos con el primer dígito del primer elemento como % K.

# Python3 code to demonstrate 
# Test if all digits starts from % K digit
# using all() + list comprehension 
  
# initializing list 
test_list = [65, 3, 92, 332] 
  
# printing original list 
print("The original list : " + str(test_list)) 
  
# initializing K
K = 3
  
# using all() + list comprehension 
# Check if front digit is Odd in list 
res = not all(int(str(i)[0]) % K for i in test_list) 
  
# print result 
print("Does each element start with % K digit ? " + str(res)) 
Producción :

The original list : [65, 3, 92, 332]
Does each element start with % K digit ? True

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *