Spodziewałbym się, że metoda keys w Pythonie zwróci zestaw zamiast listy. Ponieważ najbardziej przypomina rodzaj gwarancji, które dawałyby klucze haszmapy. W szczególności są one niepowtarzalne i nieposortowane, jak zestaw. Jednak ta metoda zwraca listę:
>>> d = {}
>>> d.keys().__class__
<type 'list'>
Czy to tylko błąd w API Pythona, czy jest jakiś inny powód, dla którego mi brakuje?
python
python-2.x
się
źródło
źródło
Odpowiedzi:
Jednym z powodów jest to, że
dict.keys()
poprzedza to wprowadzenie zestawów do języka.Zwróć uwagę, że zwracany typ
dict.keys()
zmienił się w Pythonie 3: funkcja zwraca teraz widok podobny do zestawu, a nie listę.źródło
set()
! które pozwalają nadict.keys() | set()
operacje. Py3 rządzi :)dict.viewkeys()
i używając go z operacjami na zestawach|
,&
...