Как выбрать элемент, при условии нахождения его в 2-х списках?

Имеются списки:

a = ['qwe', 'rty', 'uio']
b = dict.key()
# в ключах могут быть слова как из списка [а] так и нет

Задача: выбрать из некого третьего списка, прилетающего на вход, слова, которые есть в списке а и ключах словаря b и к ним применить некое действие.


Ответы (2 шт):

Автор решения: CrazyElf

Просто через in проверяете и наличие элемента в списке и наличие элемента в ключах словаря:

a = ['qwe', 'rty', 'uio']
b = {'qwe':'asd', 'uio':'zxc'}
c = ['ghj','uio','123','rty']
for x in c:
    if x in a and x in b:
        print('делаем что-то с', x)

Вывод:

делаем что-то с uio

А по вашему коду:

  • dict - плохое название для словаря, оно перекрывает класс dict
  • функция взятия ключей словаря называется keys(), а не key()
  • обращение к .keys() в большинстве случаев не нужно - когда вы итерируетесь по ключам по словаря или проверяете через in вхождение чего-то в ключи словаря, .keys() можно не писать, обращение и так будет к ключам словаря
→ Ссылка
Автор решения: MaxU

Если рассматривать переменные a, c и ключи словаря b как множества, тогда задача сводится к нахождению пересечения трех множеств.

Для примера воспользуемся переменными из ответа уважаемого CrazyElf:

res = set(a) & set(b) & set(c)

результат:

In [27]: res
Out[27]: {'uio'}
→ Ссылка