#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}