Python | Contar los elementos hasta la primera tupla

A veces, mientras trabajamos con registros, podemos tener un problema en el que un elemento de un registro es otro registro de tupla y es posible que tengamos que contar la cantidad de elementos que ocurren antes del registro. Este es un problema que no ocurre comúnmente, pero tener una solución es útil. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar loop + isinstance() + enumerate() 
Este problema se puede resolver usando las funcionalidades anteriores. En esto, simplemente recorremos los elementos usando enumerate() para obtener el recuento del índice y verificar el tipo usando isinstance().
 

Python3

# Python3 code to demonstrate working of
# Elements till first tuple
# using isinstance() + enumerate() + loop
 
# initialize tuple
test_tup = (1, 5, 7, (4, 6), 10)
 
# printing original tuple
print("The original tuple : " + str(test_tup))
 
# Elements till first tuple
# using isinstance() + enumerate() + loop
for count, ele in enumerate(test_tup):
    if isinstance(ele, tuple):
        break
 
# printing result
print("Elements till the first tuple : " + str(count))
Producción : 

The original tuple : (1, 5, 7, (4, 6), 10)
Elements till the first tuple : 3

 

 
Método #2: Usar takewhile() + sum() + isinstance() + lambda 
La combinación de las funciones anteriores también se puede usar para resolver este problema. En esto, usamos takewhile(), para iterar hasta una tupla y sum() para verificar el contador.
 

Python3

# Python3 code to demonstrate working of
# Elements till first tuple
# using takewhile() + sum() + isinstance() + lambda
from itertools import takewhile
 
# initialize tuple
test_tup = (1, 5, 7, (4, 6), 10)
 
# printing original tuple
print("The original tuple : " + str(test_tup))
 
# Elements till first tuple
# using takewhile() + sum() + isinstance() + lambda
res = sum(1 for sub in takewhile(lambda ele: not isinstance(ele, tuple), test_tup))
 
# printing result
print("Elements till the first tuple : " + str(res))
Producción : 

The original tuple : (1, 5, 7, (4, 6), 10)
Elements till the first tuple : 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 *