Chcę zaimplementować HashMap w Pythonie. Chcę poprosić użytkownika o wprowadzenie danych. w zależności od jego wkładu pobieram informacje z HashMap. Jeśli użytkownik wprowadzi klucz z HashMap, chciałbym pobrać odpowiednią wartość.
Jak zaimplementować tę funkcjonalność w Pythonie?
HashMap<String,String> streetno=new HashMap<String,String>();
streetno.put("1", "Sachin Tendulkar");
streetno.put("2", "Dravid");
streetno.put("3","Sehwag");
streetno.put("4","Laxman");
streetno.put("5","Kohli")
Odpowiedzi:
Słownik Pythona to typ wbudowany, który obsługuje pary klucz-wartość.
a także używając słowa kluczowego dict:
lub:
źródło
dict
, które byłoby bardziej odpowiednie w tym kontekście, jest to,dict(key1=value1, key2=value2, ...)
że wymaga to kluczy do łańcuchów, które są również prawidłowymi identyfikatorami Pythona (i wewnętrznie tworzy to również słownik).dict
konstruktor obsługuje słowa kluczowego na argumenty i działa jakdef dict(**kwds): return kwds
gdyby podane argumenty słowa kluczowego.Wszystko, czego chciałeś (w czasie, gdy pierwotnie zadawano pytanie), to podpowiedź. Oto wskazówka: w Pythonie możesz używać słowników .
źródło
Jest wbudowany w Python. Zobacz słowniki .
Na podstawie twojego przykładu:
Możesz wtedy uzyskać do niego dostęp w następujący sposób:
Warto również wspomnieć: może używać dowolnego niezmiennego typu danych jako klucza. Oznacza to, że może używać krotki, wartości logicznej lub ciągu znaków jako klucza.
źródło
Aby pobrać wartości:
Lub
Oznacza to użycie liczby jako kluczy, umieść liczby w cudzysłowie, aby użyć łańcuchów jako kluczy.
źródło
Mapy skrótów są wbudowane w Pythonie i nazywane są słownikami :
Stosowanie:
Zobacz dokumentację, aby uzyskać więcej informacji, np. Wbudowane metody i tak dalej. Są świetne i bardzo powszechne w programach Pythona (nic dziwnego).
źródło
Oto implementacja Hash Map przy użyciu Pythona. Dla uproszczenia, mapa skrótów ma stały rozmiar 16. Można to łatwo zmienić. Ponowne haszowanie jest poza zakresem tego kodu.
Wynik:
źródło
hash(key) & 15
,,73%15= 13
ale to jest równoważne:1001001 & 0001111 = 0001111
tj.9
i nie13
, myślę, że użycie mod jest poprawną operacją. Popraw mnie, jeśli się mylę!źródło
Python Counter to również dobra opcja w tym przypadku:
Zwraca dykt z liczbą każdego elementu na liście:
źródło
W Pythonie użyłbyś słownika.
Jest to bardzo ważny typ w Pythonie i często używany.
Możesz je łatwo utworzyć, korzystając z
Słowniki mają wiele metod:
Nie możesz wpływać na kolejność dyktowania.
źródło