Python: índice de elementos en tuplas de rango

A veces, mientras trabajamos con datos de Python, podemos tener un problema en el que necesitamos encontrar la posición del elemento en tuplas continuas equidistantes en la lista. Este problema tiene aplicaciones en muchos dominios, incluida la programación día a día y la programación competitiva. Analicemos ciertas formas en que se puede realizar esta tarea.
 

Entrada
lista_prueba = [(0, 10), (11, 20), (21, 30), (31, 40)] 
K = 37 
Salida : 3
Entrada
lista_prueba = [(0, 9), (10, 19 ), (20, 29), (30, 39)] 
K = 37 
Salida : 3 
 

Método n.º 1: Usar bucle 
Esta es una forma de fuerza bruta en la que se puede realizar esta tarea. En esto, iteramos por todos los elementos en la lista y luego usando operadores de comparación, encontramos la posición del elemento deseado.
 

Python3

# Python3 code to demonstrate working of
# Element Index in Range Tuples
# Using loop
 
# initializing list
test_list = [(0, 10), (11, 20), (21, 30), (31, 40), (41, 50)]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing Element
K = 37
 
# Element Index in Range Tuples
# Using loop
res = None
for idx, ele in enumerate(test_list):
    if K >= ele[0] and K <= ele[1]:
        res = idx
         
# printing result
print("The position of element : " + str(res))
Producción : 

The original list is : [(0, 10), (11, 20), (21, 30), (31, 40), (41, 50)]
The position of element : 3

 

 
Método n.º 2: usar la fórmula 
La posición del elemento también se puede dividir sin usar un ciclo, pero para extraer lo mismo usando la división del elemento con el tamaño del rango, siendo consistente.
 

Python3

# Python3 code to demonstrate working of
# Element Index in Range Tuples
# Using formula
 
# initializing list
test_list = [(0, 10), (11, 20), (21, 30), (31, 40), (41, 50)]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing Element
K = 37
 
# Element Index in Range Tuples
# Using formula
res = (K // (test_list[0][1] - test_list[0][0]))
         
# printing result
print("The position of element : " + str(res))
Producción : 

The original list is : [(0, 10), (11, 20), (21, 30), (31, 40), (41, 50)]
The position of element : 3

 

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 *