**Praca z Listami, Krotkami i Słownikami

Dzisiejsza lekcja skupia się na podstawowych strukturach danych w Pythonie: listach, krotkach i słownikach. Nauczysz się, jak efektywnie przechowywać i manipulować danymi, co jest kluczowe w pracy z nauką o danych.

Learning Objectives

  • Zdefiniować i tworzyć listy, krotki i słowniki w Pythonie.
  • Manipulować danymi przechowywanymi w listach, krotkach i słownikach (dodawanie, usuwanie, modyfikowanie).
  • Zrozumieć różnice między listami, krotkami i słownikami oraz kiedy używać każdej z nich.
  • Wykorzystać podstawowe operacje na listach, krotkach i słownikach do rozwiązywania prostych problemów.

Lesson Content

Listy (Listy)

Listy są uporządkowanymi, zmiennymi sekwencjami elementów. Możesz w nich przechowywać różne typy danych (liczby, łańcuchy znaków, a nawet inne listy). Listy są definiowane za pomocą nawiasów kwadratowych [].

Przykład:

# Tworzenie listy liczb całkowitych
liczby = [1, 2, 3, 4, 5]

# Tworzenie listy łańcuchów znaków
owoce = ['jabłko', 'banan', 'pomarańcza']

# Lista zawierająca różne typy danych
lista_mieszana = [1, 'tekst', 3.14, True]

Podstawowe operacje na listach:
* Dostęp do elementów: Używamy indeksów (zaczynając od 0).
python print(owoce[0]) # Wyświetli: jabłko
* Dodawanie elementów: Używamy metody append() lub operatora +.
python owoce.append('truskawka') print(owoce) # Wyświetli: ['jabłko', 'banan', 'pomarańcza', 'truskawka'] owoce = owoce + ['gruszka', 'śliwka'] print(owoce) # Wyświetli: ['jabłko', 'banan', 'pomarańcza', 'truskawka', 'gruszka', 'śliwka']
* Usuwanie elementów: Używamy metody remove() lub del (po indeksie).
python owoce.remove('banan') print(owoce) del owoce[0] print(owoce)
* Długość listy: Używamy funkcji len().
python dlugosc = len(owoce) print(dlugosc) # Wyświetli: 4

Krotki (Tuple)

Krotki są uporządkowanymi, niezmiennymi sekwencjami elementów. Oznacza to, że po utworzeniu krotki, nie można modyfikować jej zawartości. Definiowane są za pomocą nawiasów okrągłych (). Krotki są szybsze i zużywają mniej pamięci niż listy, gdy nie potrzebujesz modyfikować danych.

Przykład:

# Tworzenie krotki
wspolrzedne = (10, 20)
kolory = ('czerwony', 'zielony', 'niebieski')

Podstawowe operacje na krotkach:
* Dostęp do elementów: Jak w listach, używamy indeksów.
python print(wspolrzedne[0]) # Wyświetli: 10
* Długość krotki: Używamy funkcji len().
python dlugosc = len(kolory) print(dlugosc) # Wyświetli: 3
* Niemodyfikowalność: Nie można dodawać, usuwać ani zmieniać elementów krotki.
python # Poniższy kod spowoduje błąd: # wspolrzedne[0] = 5 #TypeError: 'tuple' object does not support item assignment

Słowniki (Dictionaries)

Słowniki przechowują dane w postaci par klucz-wartość. Klucze muszą być unikalne i niezmienne (np. liczby, łańcuchy znaków, krotki). Wartości mogą być dowolnego typu. Słowniki są definiowane za pomocą nawiasów klamrowych {}. Są niezwykle przydatne do przechowywania i wyszukiwania danych na podstawie kluczy.

Przykład:

# Tworzenie słownika
student = {
    'imie': 'Jan',
    'nazwisko': 'Kowalski',
    'wiek': 20,
    'oceny': [4, 5, 3]
}

Podstawowe operacje na słownikach:
* Dostęp do wartości: Używamy kluczy.
python print(student['imie']) # Wyświetli: Jan print(student['oceny']) # Wyświetli: [4, 5, 3]
* Dodawanie i modyfikowanie elementów:
python student['kierunek'] = 'Informatyka' # Dodawanie nowego elementu student['wiek'] = 21 # Modyfikacja istniejącego elementu print(student)
* Usuwanie elementów: Używamy słowa kluczowego del.
python del student['oceny'] print(student)
* Sprawdzanie obecności klucza: Używamy operatora in.
python print('imie' in student) # Wyświetli: True print('oceny' in student) # Wyświetli: False
* Metody keys(), values(), items(): Używane do iteracji po kluczach, wartościach lub parach klucz-wartość.
python for klucz in student.keys(): print(klucz) for wartosc in student.values(): print(wartosc) for klucz, wartosc in student.items(): print(f'{klucz}: {wartosc}')

Deep Dive

Explore advanced insights, examples, and bonus exercises to deepen understanding.

Rozszerzone Materiały Dydaktyczne: Python dla Nauki o Danych - Dzień 3

Witamy w rozszerzeniu dzisiejszej lekcji! Dziś zagłębimy się jeszcze bardziej w świat list, krotek i słowników w Pythonie. Odkryjemy niuanse, alternatywne zastosowania i jak te podstawowe struktury danych stają się fundamentem dla bardziej zaawansowanych technik w nauce o danych.

Sekcja "Głębiej w Temat": Zaawansowane Koncepcje i Alternatywne Perspektywy

W dzisiejszej lekcji skupiliśmy się na podstawach list, krotek i słowników. Teraz przyjrzymy się bardziej zaawansowanym aspektom:

  • List Comprehensions (Listy Składane): Odkryjmy, jak tworzyć listy w sposób zwięzły i efektywny. Listy składane pozwalają na generowanie nowych list na podstawie istniejących, często w jednej linijce kodu. To potężne narzędzie do transformacji danych.

    Przykład: Załóżmy, że chcemy podwoić wartości z listy liczb:

    numbers = [1, 2, 3, 4, 5] doubled_numbers = [x * 2 for x in numbers] print(doubled_numbers) # Output: [2, 4, 6, 8, 10]

  • Operacje na Słownikach i ich Metody: Zapoznajmy się z bardziej zaawansowanymi metodami słowników, takimi jak .get(), .setdefault(), .pop(). Zrozumienie tych metod znacznie ułatwia manipulację danymi przechowywanymi w słownikach.

    Przykład: Użycie .get() do bezpiecznego pobierania wartości z klucza, który może nie istnieć:

    my_dict = {'imie': 'Jan', 'wiek': 30} wiek = my_dict.get('wiek') # wiek = 30 adres = my_dict.get('adres', 'Nieznany') # adres = 'Nieznany'

  • Krotki a Niezmienność: Dlaczego krotki są niezmienne? Jak ta niezmienność wpływa na wydajność i kiedy powinniśmy ich używać zamiast list? Zastanówmy się nad specyficznymi przypadkami, gdzie niezmienność krotek jest kluczowa.

    Przykład: Użycie krotki jako klucza w słowniku (co jest niemożliwe z listą):

    coords = {(1, 2): 'Punkt A', (3, 4): 'Punkt B'} print(coords[(1, 2)]) # Output: Punkt A

Dodatkowe Ćwiczenia

Praktyka czyni mistrza! Rozwiąż poniższe zadania, aby utrwalić zdobytą wiedzę:

  1. Lista Składana: Stwórz listę składaną, która z listy imion (imiona = ['Anna', 'Jan', 'Marek', 'Zuzanna']) wygeneruje listę długości każdego imienia.
  2. Wskazówka: Skorzystaj z funkcji len() w liście składanej.

  3. Słownik i Metoda .get(): Masz słownik produkty = {'jablka': 10, 'banany': 5, 'pomarancze': 7}. Spróbuj pobrać cenę dla 'gruszki' używając .get(), ustawiając domyślną cenę na 0, jeśli gruszki nie ma w słowniku.
  4. Wskazówka: Wykorzystaj drugi argument metody .get().

  5. Krotki jako Klucze: Stwórz słownik, w którym kluczami będą współrzędne punktów na płaszczyźnie (x, y) zapisane jako krotki, a wartościami – nazwy punktów. Dodaj do słownika kilka punktów i sprawdź, czy działają poprawnie.

Realne Zastosowania

Gdzie możemy spotkać listy, krotki i słowniki w codziennym życiu i w pracy Data Scientist?

  • Analiza Danych Sprzedażowych: Listy i słowniki są często używane do przechowywania i analizowania danych sprzedażowych. Lista może zawierać transakcje, a słownik może reprezentować produkty z ich cenami i ilościami.
  • Przetwarzanie Danych Geograficznych: Krotki doskonale nadają się do reprezentowania współrzędnych geograficznych (szerokość, długość geograficzna), które są niezmienne i używane jako klucze w mapach.
  • Budowanie Modelu Rekomendacji: Słowniki mogą być używane do przechowywania preferencji użytkowników (np. ulubione filmy, książki), gdzie kluczem jest ID użytkownika, a wartością lista preferowanych pozycji.
  • Przechowywanie Metadanych: W projektach nauki o danych, szczególnie przy przetwarzaniu plików, dane opisujące pliki (rozmiar, data modyfikacji, właściciel) mogą być przechowywane w słownikach.
  • Automatyzacja Procesów: Przy pisaniu skryptów do automatyzacji zadań, listy mogą przechowywać listę plików, a słowniki ustawienia.

Wyzwanie dla Ciebie

Spróbuj swoich sił w bardziej zaawansowanym zadaniu:

Zadanie: Napisz funkcję, która przyjmuje listę słowników. Każdy słownik w liście reprezentuje informacje o osobie (imię, wiek, miasto). Funkcja powinna zwrócić słownik, gdzie kluczami są miasta, a wartościami listy osób mieszkających w danym mieście. Użyj list składanych i metod słownikowych, aby zrealizować to zadanie.

Przykład:
osoby = [ {'imie': 'Anna', 'wiek': 30, 'miasto': 'Warszawa'}, {'imie': 'Jan', 'wiek': 25, 'miasto': 'Kraków'}, {'imie': 'Marek', 'wiek': 40, 'miasto': 'Warszawa'} ]
wynik = przetworz_osoby(osoby) print(wynik) # Output: {'Warszawa': ['Anna', 'Marek'], 'Kraków': ['Jan']}

Dalsza Nauka

Aby pogłębić swoją wiedzę, warto zapoznać się z poniższymi tematami:

  • Algorytmy i Struktury Danych: Zrozumienie podstawowych algorytmów sortowania i wyszukiwania oraz bardziej zaawansowanych struktur danych (np. stosy, kolejki) jest kluczowe.
  • Moduł collections: Python oferuje moduł collections, który zawiera zaawansowane struktury danych, takie jak namedtuple, deque, Counter, defaultdict.
  • Pandas: Biblioteka Pandas jest fundamentalna w nauce o danych. Zaczynając od podstawowych struktur danych (Series i DataFrame), odkryjesz jej moc w analizie i manipulacji danymi.
  • Dokumentacja Pythona: Regularnie odwiedzaj oficjalną dokumentację Pythona, aby zrozumieć wszystkie dostępne metody i funkcje dla list, krotek i słowników.

Interactive Exercises

Ćwiczenie 1: Manipulacja Listami

Utwórz listę ulubionych filmów. Dodaj do niej dwa nowe filmy. Usuń jeden film z listy. Wydrukuj ostateczną listę.

Ćwiczenie 2: Praca z Krotkami

Utwórz krotkę z współrzędnymi punktu na płaszczyźnie (x, y). Spróbuj zmienić wartość x. Co się dzieje? Jak możesz rozwiązać ten problem (jeśli musisz zmienić współrzędną)?

Ćwiczenie 3: Budowanie Słownika

Utwórz słownik opisujący książkę. Powinien zawierać klucze: 'tytuł', 'autor', 'rok_wydania', 'gatunek'. Dodaj nowy element 'ocena'. Wydrukuj zawartość słownika. Następnie spróbuj usunąć rok_wydania ze słownika.

Knowledge Check

Question 1: Która z poniższych struktur danych jest niezmienna?

Question 2: Jakiego znaku używasz do zdefiniowania słownika w Pythonie?

Question 3: Która z poniższych metod dodaje element do listy?

Question 4: Jakiego typu danych mogą być klucze w słowniku?

Question 5: Co robi funkcja `len()`?

Practical Application

Wyobraź sobie, że pracujesz nad projektem analizy danych dla sklepu internetowego. Musisz przechowywać dane o produktach: nazwa, cena, kategoria, dostępność. Jakie struktury danych najlepiej nadawałyby się do reprezentacji tych danych i dlaczego? Jak możesz wykorzystać te struktury, aby szybko znaleźć produkty w danej kategorii lub posortować je po cenie?

Key Takeaways

Next Steps

Przed następną lekcją, spróbuj znaleźć przykłady użycia list, krotek i słowników w bibliotekach takich jak NumPy lub Pandas. Przygotuj się na lekcję wprowadzającą do biblioteki NumPy.

Your Progress is Being Saved!

We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.

Next Lesson (Day 4)