/ / Utwórz nowy słownik w porównaniu do listy w pythonie - python, python-3.x, słownik, rozumienie listy

Utwórz nowy słownik w porównaniu do listy w Pythonie - python, python-3.x, słownik, zrozumienie listy

Mam słownik. Chcę utworzyć nowy słownik porównujący listę (my_list) wartości do wartości mojego słownika.

Mój słownik, code_dict klucze i wartości:

33003282 :["25000", "27800", "None", "4779"],
33003283: ["2564", "6264", "78784", "7841", "89564"],
33003285: ["32723", "8954", "5259", "5225", "25000","04189", "8820", "2166"]

mam my_list lubię to:

my_list = ["27800", "6264", "5225"]

Teraz chcę porównać moje wartości list z wartościami Dictionary i utworzyć nowy słownik, który ma takie wartości,

33003282 :["25000", "None", "4779"],
33003283: ["2564","78784", "7841", "89564"],
33003285: ["32723", "8954", "5259", "25000","04189", "8820", "2166"]

Zrozumiałem w następujący sposób, mając nadzieję, że podoba mi się to, jak to robimy listy:

new_dict = {key: value for value in code_dict.items()}.isin([code for code in my_list])

za pomocą isin w słownikach nie działa, jak mogę utworzyć nowy słownik?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz spróbować tego:

d = {33003282 :["25000", "27800", "None", "4779"], 33003283: ["2564", "6264", "78784", "7841", "89564"],33003285: ["32723", "8954", "5259", "5225", "25000","04189", "8820", "2166"]}
my_list = ["27800", "6264", "5225"]
final_d = {a:[i for i in b if i not in my_list] for a, b in d.items()}

Wydajność:

{33003282: ["25000", "None", "4779"], 33003283: ["2564", "78784", "7841", "89564"], 33003285: ["32723", "8954", "5259", "25000", "04189", "8820", "2166"]}

Dane wyjściowe to słownik, w którym wartości są filtrowane, aby żaden z jego elementów nie istniał my_list