Python|计算元素直到第一个元组
有时,在处理记录时,我们可能会遇到一个问题,即记录的一个元素是另一个元组记录,我们可能必须计算记录之前出现的元素计数。这是一个不常见的问题,但有一个解决方案是有用的。让我们讨论可以执行此任务的某些方式。
方法 #1:使用循环 + isinstance() + enumerate()
使用上述功能可以解决此问题。在此,我们只需使用 enumerate() 遍历元素以获取它的索引计数并使用 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))
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
方法 #2:使用 takewhile() + sum() + isinstance() + lambda
上述功能的组合也可以用来解决这个问题。在此,我们使用 takewhile() 来迭代直到一个元组和 sum() 来检查计数器。
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