我想知道你是否可以帮忙。
我有一个看起来像的元组
(1,2,(3,4,(5,(6,4),2),1,2))
我想查找所有号码及其位置。 例如,我想要元组中除第一个之外的所有整数。我编写了一个递归脚本来执行此操作,
a=[]
def getNumbers(t):
for i,item in enumerate(t):
if type(item) is int:
if i > 0:
a.append(item)
else:
getNumbers(item)
但我似乎无法确定它们在整个元组中的深度。你能帮忙吗?
最佳答案
您需要在调用递归函数时计算深度,当您使初始调用传递深度为零时,然后在每次递归调用时传递深度 + 1
。
data = (1,2,(3,4,(5,(6,4),2),1,2)) a=[]
def getNumbers(t, depth):
for i,item in enumerate(t):
if type(item) is int:
if i > 0:
a.append(item)
else:
getNumbers(item, depth + 1)
# call passing initial depth of 0.
getNumbers(data, 0)
关于Python:确定嵌套元组中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35294831/