W świecie programowania Python, jedną z fundamentalnych wiedz, którą każdy programista powinien posiadać, jest rozróżnienie między typami danych mutowalnymi a niemutowalnymi. W tym artykule skupimy się na pytaniu: “Jakie typy danych w Pythonie są mutowalne?” i zbadamy to zagadnienie, korzystając z konkretnych przykładów.
Przykład kodu:
W poniższym przykładzie zaprezentujemy mutowalność listy w Pythonie, która jest jednym z mutowalnych typów danych, oraz skontrastujemy to z niemutowalnością krotki.
# Definiowanie mutowalnej listy
fruits = ["apple", "banana", "cherry"]
print("Oryginalna lista:", fruits)
# Modyfikacja listy
fruits[1] = "blueberry"
print("Zmodyfikowana lista:", fruits)
# Dodawanie elementu do listy
fruits.append("orange")
print("Lista po dodaniu elementu:", fruits)
# Definiowanie niemutowalnej krotki
colors = ("red", "green", "blue")
print("Oryginalna krotka:", colors)
# Próba modyfikacji krotki
# To spowoduje błąd, ponieważ krotki są niemutowalne
try:
colors[1] = "yellow"
except TypeError:
print("Nie można zmodyfikować krotki!")
# Wyświetlenie końcowych wersji listy i krotki
print("Końcowa wersja listy:", fruits)
print("Końcowa wersja krotki:", colors)
W tym przykładzie najpierw tworzymy listę fruits
zawierającą trzy elementy. Listy w Pythonie są mutowalne, co oznacza, że możemy zmienić ich zawartość po utworzeniu. Demonstrujemy to, modyfikując drugi element listy i dodając nowy element na jej końcu.
Następnie tworzymy krotkę colors
, która również przechowuje trzy elementy. Próba zmiany elementu krotki kończy się niepowodzeniem i wyzwala wyjątek TypeError
, ponieważ krotki są niemutowalne, czyli nie można zmieniać ich zawartości po utworzeniu.
Podsumowanie:
Mutowalne typy danych, takie jak listy, słowniki, i zbiory, pozwalają na modyfikację ich zawartości po utworzeniu. W przeciwieństwie do nich, niemutowalne typy danych, takie jak liczby, łańcuchy znaków i krotki, nie pozwalają na zmianę ich zawartości po inicjalizacji. Zrozumienie różnicy między tymi dwoma kategoriami jest kluczowe dla efektywnego i bezbłędnego programowania w Pythonie.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.