Удалите элемент из словаря, если один из его ключей существует в списке

#python #list #dictionary

Вопрос:

У меня есть словарь следующего содержания:

 A = {(1, 1, 1): 2, (1, 2, 1): 1, (3, 3, 2): 1, (1, 4, 2): 1, (2, 5, 2): 3}
 

Предположим, что список B выглядит следующим образом:

 B = [1 4]
 

Теперь я хотел бы исключить из списка те пункты, в которых указано, что их вторые ключевые элементы существуют в списке. Если я хочу сделать то же самое для dict A на основе списка B, результат будет следующим:

 C = {(1, 2, 1): 1, (3, 3, 2): 1, (2, 5, 2): 3}
 

Комментарии:

1. Пожалуйста, расскажите подробнее о методе фильтрации, какие элементы следует опустить?

2. В этом примере я сосредоточился на втором ключевом элементе. Как вы можете видеть, числа 1 и 4 (в списке B) появляются во втором ключевом элементе первого и четвертого пунктов в диктанте A. Имеет ли это смысл?

Ответ №1:

Похоже, что вы пытаетесь удалить элементы из словаря, если средний элемент кортежа, который образует ключ, находится в списке B . Или, наоборот, храните предметы там, где нет среднего элемента ключа B .

Ты можешь сделать это вот так:

 A = {k: v for k, v in A.items() if k[1] not in B}