Przejdź do głównej treści
  1. Strona główna
  2. Technik programista
  3. INF.04
  4. Pytanie

Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji

Zawód: Technik programista

Kategorie: Programowanie Projektowanie aplikacji

Słowa kluczowe: Słownik w Pythonie

Zapisany fragment w Pythonie ilustruje:
pierwiastki = {"N":"Azot","O":"Tlen","P":"Fosfor","Si":"Siarka"}

W tym pytaniu chodziło o rozpoznanie tablicy asocjacyjnej (czyli słownika) w języku Python. Taka struktura danych pozwala bardzo szybko przypisywać wartości do kluczy i potem je równie sprawnie odnajdywać, co jest superpraktyczne w codziennych zadaniach programistycznych. Taki słownik, jak w przykładzie, gdzie symbole pierwiastków są kluczami, a ich polskie nazwy wartościami, pokazuje typowe zastosowanie tej struktury do przechowywania powiązanych danych bez konieczności przeszukiwania całej listy po kolei. Moim zdaniem słowniki to w ogóle jeden z najwygodniejszych wynalazków Pythona – nie musisz się martwić o kolejność, wystarczy znać klucz i już masz wartość. W branży wykorzystuje się słowniki na potęgę: do mapowania konfiguracji, przechowywania danych z plików JSON, czy nawet jako szybki cache. Warto dodać, że słowniki w Pythonie od wersji 3.7 zachowują kolejność dodania elementów, co czasem pomaga w czytelności kodu, chociaż to raczej miły „bonus” niż must-have. W kontekście dobrych praktyk zawodowych zawsze pilnuję, żeby klucze były niezmiennikami (np. stringi czy liczby), bo tego wymaga Python, a wartości mogą być dowolne. Jeżeli ktoś planuje automatyzować jakieś procesy lub pracować z danymi, bez słowników się nie obejdzie. To trochę taki niepozorny, a bardzo potężny „narzędzie” w arsenale każdego programisty.
Fragment kodu, który tutaj analizujemy, nie jest zwykłą strukturą danych w sensie ogólnym, bo to za mało precyzyjne określenie – praktycznie wszystko w programowaniu to jakaś struktura danych, od prostych zmiennych przez listy, aż po bardziej złożone zbiory czy słowniki. W przykładzie nie mamy też do czynienia ani ze stosem, ani z kolejką LIFO. Stos (ang. stack) to struktura, gdzie elementy dodaje się i usuwa na zasadzie ostatni wszedł, pierwszy wyszedł (Last-In-First-Out). Kolejki działają zwykle na zasadzie FIFO, ale tu pojawiła się kolejka LIFO, która w praktyce jest po prostu nazwą stosu, więc to takie trochę mieszanie pojęć. W Pythonie typ dictionary (dict) jest fundamentalnym narzędziem do przechowywania danych powiązanych przez klucz – hasła, ustawienia aplikacji, tłumaczenia na różne języki, wszystko to korzysta z tej zasady. Często błędnie utożsamia się tablice asocjacyjne z listami – tymczasem listy przechowują dane pod indeksem liczbowym, a słowniki pod dowolnym kluczem niezmienniczym. To jest właśnie esencja tablicy asocjacyjnej, bo nie trzeba znać kolejności ani pozycji, wystarczy klucz. W pytaniu łatwo się pomylić, bo teoretycznie wszystkie wymienione typy są strukturami danych, ale tylko słownik oddaje sens kodu. Na marginesie, spotkałem się nieraz z próbą użycia stosu czy kolejki tam, gdzie trzeba mapować jedne wartości na drugie – to zawsze kończy się niepotrzebnym komplikowaniem projektu i traceniem czasu na obsługę błędów, które słownik rozwiązuje w locie. Takie zrozumienie podstawowych różnic jest kluczowe dla efektywnej pracy z kodem, bo wybór nieodpowiedniej struktury danych to proszenie się o kłopoty w większych projektach.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.