Найдите индекс кортежа в списке кортежей в Python

Я новичок в Python.

У меня есть следующий массив уникальный кортежи, с которыми я играю:

array = [(1, 2), (1, 7), (1, 5), (2, 5), (2, 7), (2, 9), (3, 4), (3, 5), (4, 5), (4, 7), (5, 8), (6, 7), (8, 9)]

Я хочу найти индекс данного кортежа (u, v) в этом массиве. Я написал следующую строку, которую, как мне кажется, можно улучшить, возможно, удалив enumerate (), чтобы упростить, если условия, но не могу понять это …

Пример для кортежа (6, 7) — входные данные: 6 и 7

array = [(1, 2), (1, 7), (1, 5), (2, 5), (2, 7), (2, 9), (3, 4), (3, 5), (4, 5), (4, 7), (5, 8), (6, 7), (8, 9)]
# Inputs: 6 and 7
position = [i for i, tupl in enumerate(array) if (tupl[0] == 6 and tupl[1] == 7)]
print(position)
# Output: [11]

2 ответа
2

Вы ищете list.index функция:

>>> array = [(1, 2), (1, 7), (1, 5), (2, 5), (2, 7), (2, 9), (3, 4), (3, 5), (4, 5), (4, 7), (5, 8), (6, 7), (8, 9)]
>>> array.index((6, 7))
11

  • спасибо ^^ так очевидно …

    — Ричард

Если вы хотите устранить enumerate функцию, вы можете просто сделать это:

array = [(1, 2), (1, 7), (1, 5), (2, 5), (2, 7), (2, 9), (3, 4), (3, 5), (4, 5), (4, 7), (5, 8), (6, 7), (8, 9)]
# Inputs: 6 and 7
position = [i for i in range(len(array)) if (array[i][0] == 6 and array[i][1] == 7)]
print(position)
# Output: [11]

Это итерация по каждому индексу array а затем проверяет первую и вторую позиции.

Примечание: Мой первый ответ, ура!

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *