Как выбрать элемент, при условии нахождения его в 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'}