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))
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))
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