Dada una lista, imprime el número de números en el rango dado.
Ejemplos:
Input : [10, 20, 30, 40, 50, 40, 40, 60, 70] range: 40-80 Output : 6 Input : [10, 20, 30, 40, 50, 40, 40, 60, 70] range: 10-40 Output : 4
Enfoque de línea múltiple:
recorra la lista y verifique cada número. Si el número se encuentra en el rango especificado, aumente el contador. Al final del recorrido, el valor del contador será la respuesta para la cantidad de números en el rango especificado.
A continuación se muestra la implementación de Python del enfoque anterior
Python
# Python program to count the # number of numbers in a given range # using traversal and multiple line code def count(list1, l, r): c = 0 # traverse in the list1 for x in list1: # condition check if x>= l and x<= r: c+= 1 return c # driver code list1 = [10, 20, 30, 40, 50, 40, 40, 60, 70] l = 40 r = 80 print count(list1, l, r)
Producción:
6
Enfoque de una sola línea:
podemos escribir una sola línea para el recorrido y la condición de verificación juntas:
x for x in list1 if l <= x <= r
El valor devuelto (verdadero) de la verificación de condición se almacena en una lista y, al final, la longitud de la lista devuelve la respuesta.
A continuación se muestra la implementación de Python del enfoque anterior
Python
# Python program to count the # number of numbers in a given range def count(list1, l, r): # x for x in list1 is same as traversal in the list # the if condition checks for the number of numbers in the range # l to r # the return is stored in a list # whose length is the answer return len(list(x for x in list1 if l <= x <= r)) # driver code list1 = [10, 20, 30, 40, 50, 40, 40, 60, 70] l = 40 r = 80 print count(list1, l, r)
Producción:
6
Enfoque #3: Usando la suma Podemos usar la suma en este problema. Usamos la comprensión de la lista para iterar sobre la lista y verificar que el número esté dentro del rango o no, si está presente, la comparación tendrá 1 y, de lo contrario, 0 como valor. La función Sum devuelve la suma del total de parámetros.
Python3
# Python program to count the # number of numbers in a given range def count(list1, l, r): # Traversing the list with on line for loop # check if number is in range of not return sum( l <= x <= r for x in list1) # driver code list1 = [10, 20, 30, 40, 50, 40, 40, 60, 70] l = 40 r = 80 print( count( list1, l, r ) )
Producción:
6