Wpis z mikrobloga

To zalezy co chcesz zrobic. Metoda keys() zwraca view object ktory np. pozwala manipulowac elementami slownika podczas iteracji, czego nie mozesz zrobic podczas iteracji po "golym" slowniku.

Tak wiec jesli nie zamierzasz nic modyfikowac (albo chcesz miec pewnosc ze nic ci twojego ficta nie modyfikuje) mozesz iterowac po dict'cie bezposrednio. Jesli jednak chcesz modyfikowac go w czasie iteracji - uzyj keys().
  • Odpowiedz
  • 0
@vogello: No wiesz, nie zupełnie. Pod maską pewnie Python tworzy osobną tablicę ze shaszowanymi kluczami, którą po iteracji pewnie wykorzystuje do nadpisania oryginalnych kluczy. Co prawda - jak mówisz różnica na ogół niewielka ale przy większych dictach może już być problem.
  • Odpowiedz
Pod maską pewnie Python tworzy osobną tablicę ze shaszowanymi kluczami, którą po iteracji pewnie wykorzystuje do nadpisania oryginalnych kluczy


@horus666: Zycie nauczylo mnie ze w przypadku pythona nie warto zdawac sie na intuicje ;) chyba ze masz ta intuicje wycwiczona w kierunku pythona. Wszystkie metody wbudowane sa wielokrotnie szybsze niz budowanie ich odpowiednikow w golym pythonie (np. list comprehension vs petla + reczne wypelnianie listy; petla for jest szybsza niz while
  • Odpowiedz
  • 1
Zycie nauczylo mnie ze w przypadku pythona nie warto zdawac sie na intuicje ;) chyba ze masz ta intuicje wycwiczona w kierunku pythona. Wszystkie metody wbudowane sa wielokrotnie szybsze niz budowanie ich odpowiednikow w golym pythonie (np. list comprehension vs petla + reczne wypelnianie listy; petla for jest szybsza niz while z incrementacja warunku) - poniewaz pod "maska" pythona siedzi sobie C++ ktory pokazuje na co go stac. W tym przypadku tez.
  • Odpowiedz