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