@Timebird

Как найти соседние элементы словаря по ключам?

Имеется словарь:
{'слово': 'S', 'адвокат': 'S', 'было': 'V', 'весьма': 'ADV', 'популярным': 'A', 'законодательное': 'A', 'закрепление': 'S', 'этот': 'APRO', 'термин': 'S' ...}

Необходимо: найти все значения 'А' словаря и вытащить их ключ, но только если следующее слово имеет значение 'S'.
По приведенному словарю (я там кусочек привел) нужно, чтобы выводились слова'законодательное' 'закрепление'.

Как это сделать? Вроде алгоритм простой, а что-то не пойму никак.
Спасибо.
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from itertools import tee

def pairwise(iterable):
    a, b = tee(iterable)
    next(b, None)
    return zip(a, b)

keys = [k for k, v in zip(pairwise(d.keys()), pairwise(d.values())) if v == ('A', 'S')]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sash999
просто админ из деревни
Можно преобразовать в список кортежей с помощью dict.items(), ну а дальше все просто.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы