如何通过语法TupleName.index()

时间:2019-03-29 17:19:42

标签: python indexing nested tuples

如何通过索引语法查找嵌套元组元素的索引?

例如:我通过名称NestedTuple定义了元组

NestedTuple = (5,"jazz",("pop","rock"),(3,4),("disco",(1,2)))  
NestedTuple[4][0]

其输出为

'disco'

但是我想通过使用TupleNam.index()语法进行逆向处理,即我想要[4] [0]作为输出

NestedTuple.index("jazz")
NestedTuple.index(("pop","rock"))
NestedTuple.index(("disco",(1,2)))

输出为

1
2
4

我尝试了类似TupleName.index((“ disco”))等的代码,但是它们都不起作用。 如何使用索引语法将“ disco”的索引获取为[4] [0]? 我是编程语言的新手,无论是初学者,还是要入门的人,请仅使用基本知识?

1 个答案:

答案 0 :(得分:2)

您可以创建自己的递归函数,该函数将返回嵌套元组中任何给定元素的所有索引,如上所示:

NestedTuple = (5,"jazz",("pop","rock"),(3,4),("disco",(1,2))) 

def findIndices(item, tup):
     indices = []
     for index, elem in enumerate(tup):
          if item == elem:
               indices.append(index)
               return indices
          elif isinstance(elem,tuple):
               indices.append(index)
               return indices + findIndices(item,elem)

print(findIndices('pop',NestedTuple))

这将返回:

[2, 0]