Я новичок в 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 ответа
Вы ищете 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 а затем проверяет первую и вторую позиции.
Примечание: Мой первый ответ, ура!

спасибо ^^ так очевидно …
— Ричард