@AlmazKayum

Как найти индекс в tuple of tuple python?

Приветствую.

Встал вопрос, как найти индекс если знаешь один элемент в кортеже кортежей Python.
Пример:
У нас есть кортеж кортежей, как результат выдачи данных из БД.

((aaa, bbb, ccc,), (ddd, fff, eee), (ggg, hhh, mmm))


Известен третий элемент внутреннего кортежа, например eee, причем мы знаем точно, что он уникальный. Он находится в кортеже под индексом 1.

Как возвратить индекс внешнего кортежа с помощь Python(то есть 1)?
  • Вопрос задан
  • 1530 просмотров
Решения вопроса 1
ZinBu
@ZinBu
Продам гараж (в лс)
data = (('aaa', 'bbb', 'ccc',), ('ddd', 'fff', 'eee'), ('ggg', 'hhh', 'mmm'))

def find_index(embedded_elem, data_set):
    for elem in data_set:
        if embedded_elem in elem:
            print(data.index(elem))  # индекс внешнего элемента
            print(elem.index(embedded_elem))  # индекс внутреннего


>>>find_index('hhh', data)
>>>
2
1
>>> find_index('ddd', data)
>>>
1
0
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
def find_index(seq, val):
    return next((i for i, items in enumerate(seq) if val in items), None)

data = (('aaa', 'bbb', 'ccc',), ('ddd', 'fff', 'eee'), ('ggg', 'hhh', 'mmm'))

find_index(data, 'eee')
Ответ написан
@Drill
In [5]: 
data = (('aaa', 'bbb', 'ccc',), ('ddd', 'fff', 'eee'), ('ggg', 'hhh', 'mmm'))

coords = divmod(sum(data,()).index('eee'),len(data[0]))

print('Index "eee":', coords[1])
Index "eee": 2
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы