Как сделать данное действие?

Есть словарь и массив. Нужно сравнить значения из словаря и массив, записать в переменную ключ и значения.

Думал перебрать, но не получалось. Функцией set() да, получается, но не то что нужно мне

Вывести/записать в переменную

ключ и значение в массив, чтобы потом отправить дальше по задачам

Код
def chek_data(body, dic):
        # print(type(body))
        # print(type(dic))
        if len(body) > 1:
            for dic_check in dic.values():
        #         if dic_check in body:
        #             print("yes!")
        #         else:
        #             print("no!")
                    #print(body)
                    #print("Уведомление отправлено!")
                    #begin_mesage = 'Список не в сети: \n'
                    #body = begin_mesage + body
                    #send_email(body)
        # else:
        #     print("Всё работает!")


Данные такие

a = {'ключ':['значение'], 'ключ':['значение'], 'ключ':['значение'], 'ключ':['значение']}
b = ['значение1', 'значение2']



Я сравниваю b с а и хочу получить вывод ключ и значение
Буду благодарен даже просто подсказке куда копать или как можно это реализовать
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну т.е.:
1. ты хочешь получить список пар ключ-значение из словаря
2. каждое значение содержит список/кортеж строк
3. тебя интересуют только те пары, в значении которых встречаются строки из заданной коллекции
Так?
b_set = frozenset(b)  # переделываем список b в неизменяемое множество
result = {
    key: value  # генерируем словарь
    for key, value in a.items()  # на основании пар key-value словаря a
    if not b_set.isdisjoint(value)  # берём только те пары, в value которых есть элементы из b_set
}

А дальше итерируешь словарь result и делаешь с ним что тебе надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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