Python:确定嵌套元组中的位置

标签 python recursion tuples depth

我想知道你是否可以帮忙。

我有一个看起来像的元组

(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/

相关文章:

python - 为什么 PyRotationWarper.warp 和 PyRotationWarper.warpPoint 似乎应用不同的变换?

python - 如何获取嵌套字典中特定键值的级别

parsing - 递归下降解析器的实现

python ctype 递归结构

Python:嵌套字典与元组键(调用前者要快得多)

python - 有没有办法将 gremlinpython 图转换为 networkx 图

Python 使用 future 和loop_forever

python - 如何从具有匹配索引的数据帧中减去一系列

c++ - 交换引用的临时元组

scala - 为什么以及如何在调用单参数函数时特别处理元组?