У меня есть список кортежей:
sentenceParts = [('there', 'EX'), ('is', 'VBZ'), ('a', 'DT'), ('huge', 'JJ'), ('shaggy', 'NN'), ('dog', 'NN'), ('in', 'IN'), ('the', 'DT'), ('yard', 'NN')]
Я хочу иметь функцию, посредством которой, если, например, я знаю, мне нужно найти значение 'IN' (ключ которого в данном случае'in'), функция вернет ключ ПРЕДЫДУЩИЙ кортежей (в данном примере 'собака'), а также числовой индекс ключа этого кортежа (в этом случае я считаю, что это будет 5 [0])
В настоящее время я получаю значение для поиска ('in') из этой строки:
wordIndex = next((word for word, value in sentenceParts if value == "IN"), None)
Эта строка возвращает ключ 'in', правильно.Мне нужен аналогичный способ для получения нужного мне результата ('dog', 5 [0] prehaps).Я пробовал возиться с различными версиямиать на фразеParts.index (wordIndex), но я определенно не правильно его использую.Я нашел по крайней мере три разных способа заставить код возвращать «in» мне и несколько десятков способов получить ValueError или AttributeError ... но пока не повезло, когда я обернул голову, возвращая что-то вроде 'dog', 5 [0]
Если бы мне пришлось поместить его в псевдокод, это было бы:
wordIndex = next((PREVIOUS word, INDEX, for word, value in sentenceParts if value == "IN"), None)
Спасибо.Извиняюсь, если об этом уже спрашивали, но я не могу найти ничего, что бы действительно отвечало всем требованиям после значительных поисков ... и, если бы я это увидел, я, возможно, был недостаточно осведомлен, чтобы это распознать.Надеюсь, я не просто пропустил это.Спасибо за любую помощь, вы можете предоставить.