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 № 1Moż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