Как найти индекс элементов вложенных кортежей по синтаксису TupleName.index () - PullRequest
1 голос
/ 29 марта 2019

Как найти индекс элементов вложенного кортежа по синтаксису индекса?

Например: я определил свой кортеж по имени NestedTuple

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

Его выход

'disco'

Но я хочу сделать обратный процесс, который я хочу [4] [0] в качестве вывода, используя синтаксис TupleNam.index ()

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

Выходы

1
2
4

Я пробовал код, подобный TupleName.index (("disco")) и т. Д., Но ни один из них не работает. Как я могу получить индекс "disco" как [4] [0], используя синтаксис индекса? Я новичок в языке программирования и на уровне начинающих, поэтому, кто бы ни ответил, пожалуйста, используйте только основные вещи?

1 Ответ

2 голосов
/ 29 марта 2019

Вы можете создать свою собственную рекурсивную функцию, которая будет возвращать все индексы любого данного элемента во вложенном кортеже, как указано выше:

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]
...