Jaka jest różnica między listą a krotką?

Opublikowany: 2021-11-28

Krotka i listy to rodzaj struktury danych używanej w Pythonie. Listy przechowują dane w jednej zmiennej za pomocą nawiasów kwadratowych, podczas gdy krotki przechowują dane w jednej zmiennej za pomocą nawiasów. Obie struktury służą do przechowywania wielu wartości i obiektów.

W tym artykule zagłębimy się w kluczowe różnice między listą a krotką i zbadamy ich przypadki użycia. Ale najpierw rzućmy okiem na podstawowe podobieństwa między nimi:

  • Możesz przechowywać elementy i obiekty wszystkich typów danych zarówno w krotkach, jak i na listach.
  • Zarówno krotka, jak i lista umożliwiają dostęp do danych przy użyciu ich odpowiedniego indeksu.
  • Oba te typy danych mogą kompilować i katalogować różne elementy danych.

Spis treści

Python krotka kontra lista

1. Różnice składni

Deklaracja list i krotek jest w Pythonie niezmiennie inna. Listy są deklarowane za pomocą nawiasów kwadratowych „[]”, podczas gdy deklaracja krotek odbywa się za pomocą „()”.

Oto przykład, aby lepiej zrozumieć, jak deklarować listy i krotki w Pythonie.

numer_listy = [7,8,9,10]

tup_num = (10,11,13,14)

drukuj(numer_listy)

drukuj(tup_num)

Wyjściem do tej sekwencji byłoby.

[7,8,9,10]

(10,11,13,14)

W tym przykładzie zdefiniowana jest zmienna o nazwie list_num, która obsługuje liczby od 7 do 10. Widzimy również, że dane wyjściowe są ujęte w nawiasy kwadratowe. Jednak zmienna zdefiniowana jako tup_num i przechowująca liczby od 10 do 14 wyświetla dane wyjściowe w nawiasach.

Python używa funkcji type(), która pomaga nam zrozumieć typ tworzonych elementów.

print(typ(tup_num))

print(typ(numer_listy))

Wyjście:

<klasa 'krotka'>

<klasa 'list'>

2. Zmienność (zmienna kontra niezmienna)

Krotki i listy są sprzeczne, jeśli chodzi o ich zmienność. Krotki to niezmienne struktury, których nie można modyfikować ani zmieniać po ich utworzeniu. Wręcz przeciwnie, listy to struktury mutowalne, które można łatwo zmienić lub zmodyfikować po ich utworzeniu.

Tylko krotki mogą być używane jako klucz do słowników ze względu na ich niezmienną naturę. Listy nigdy nie mogą być używane jako klucze, gdy jest to wymagane.

3. Zmiana obiektu (Lista vs Krotka)

Dowiedzmy się, co się dzieje, gdy powstaje próba zmiany na liście.

imię = [alex, Rick, martin]

imię [0] = „roxy”

Uwaga : pierwszy element jest zawsze określany jako 0, a nie 1.

Przyjrzyjmy się teraz, jak wyglądałby wynik po wykonaniu następującego polecenia:

>>>nazwa

Wyjście:

[Roxy, Rick, Martin]

Dane wyjściowe pokazują, jak zmieniła się pierwsza pozycja na liście.

Zobaczmy teraz, jaki byłby wynik, gdyby użyto krotki.

imię = (alex, Rick, martin)

Gdy element w krotce zostanie zmieniony za pomocą

nazwa(0) = „roxy”

Wynikiem będą:

TypeError: obiekt „krotka” nie obsługuje przypisywania elementów.

Oznacza to, że struktura danych krotki nie obsługuje obiektu, który został później zmieniony. Dlatego możemy wywnioskować, że modyfikować można tylko listy, a nie krotki.

4. Kopie a ponowne użycie

Nie można kopiować krotek. Powodem jest tu niezmienna natura krotek. Na przykład, jeśli uruchomisz krotkę (tup_name), zobaczysz, że została przywrócona do siebie.

Przykład:

imiona = („allen”, „siri”, „Michaela”)

copyNames = krotka(names)

print(names to copyNames)

Wyjście tutaj będzie – „Prawda”.

Wręcz przeciwnie, jeśli spróbujesz zrobić to samo dla listy (jak pokazano w przykładzie):

Przykład:

imiona = ["allen", "siri"""Michaela"]

copyNames = lista (nazwy)

print(names to copyNames)

Dane wyjściowe będą wyświetlane jako „fałsz”.

Będziesz musiał skopiować i wkleić pełne nazwy do nowej listy, aby uzyskać prawdziwe dane wyjściowe.

5. Krotka Pythona a lista | Różnice wielkości

Ze względu na niezmienną naturę krotki Python przydziela pamięci krotek tylko w postaci dużych bloków o stosunkowo niskim nakładzie pracy. W przypadku list Python udostępnia tylko bloki pamięci o mniejszych rozmiarach. W rezultacie krotki mają tylko niewielką ilość pamięci w porównaniu z listami. Oznacza to jednak, że krotki są znacznie szybsze w użyciu niż listy, gdy zaangażowanych jest wiele elementów.

6. Heterogeniczny a jednorodny

Krotki mogą przechowywać elementy różnych typów, które są niejednorodne. Wręcz przeciwnie, listy mogą przechowywać cechy lub dane tego samego wariantu, które są jednorodne.

To jednak tylko różnica semantyczna. Na przykład listy mogą przechowywać dane różnych typów, a krotki mogą również przechowywać dane tego samego rodzaju.

Przykład:

list_elements = ['allen', 20, 'maria']

tuple_elements = ('allen', 'mary', 'alex')

Kod będzie działał bezproblemowo, mimo że lista zawiera kombinację cyfr i ciągów.

7. Różnice długości

Listy i krotki różnią się również długością i rozmiarem. Chociaż krotki różnią się długością, długość krotki jest stała. W związku z tym rozmiar list można zmienić w dowolnym momencie, w przeciwieństwie do długości krotek, które pozostają stałe po zdefiniowaniu.

Przykład:

list_names = ['allen', 'maria', 'alex']

list_names.append("roxy")

drukuj (nazwy_listy)

Wyjście:

['Allen','Mary','Alex','Roxy']

Dokładne dane wyjściowe można było również uzyskać za pomocą funkcji insert() zamiast funkcji append(), jeśli chodzi o listy.

Jednak struktura danych krotki nie daje nam możliwości zmiany jej rozmiaru.

8. Używa przypadków

W różnych okolicznościach przynajmniej jedna z tych struktur danych działa dobrze. Zwykle zależy to od kodera programu, w którym używana jest struktura danych. Struktura danych jest wybierana na podstawie tego, czy elementy danych zostaną przepisane w przyszłości.

Krotki są znacznie ważniejsze jako struktury danych w porównaniu z listami, ponieważ:

  • Używanie krotek zamiast list może poinformować kodera lub interpretera danych, aby nie zmieniał informacji.
  • Możesz także przywrócić dane bez kluczy, używając krotki.
  • Krotki są odpowiednikami słowników w Pythonie.
  • Krotki przechowywane na liście są bardzo łatwe do odczytania.

Niezmienna i mieszająca się natura krotek czyni je idealnym zamiennikiem słowników. Z drugiej strony nie można używać list do zastępowania słowników, ponieważ nie obsługują one funkcji _hash_().

Przykład:

key_val= {('alex', 'odważny'): 124} #Ważny

key_val = {['alex', 'odważny']:124} #Nieprawidłowy

9. Listy zagnieżdżania i krotki

Krotki i listy mogą być przechowywane w sobie nawzajem. Krotki, które są zagnieżdżone, mogą zawierać więcej krotek. Podobnie listy zagnieżdżone mogą mieć więcej list.

10. Debugowanie

Krotki są znacznie łatwiejsze do debugowania w bardziej rozbudowanych projektach w porównaniu z listami. Wynika to z niezmiennych cech krotek. Jednak w przypadku znacznie mniejszej ilości danych zawsze sugeruje się poleganie na listach. Krotki są również znacznie łatwiejsze do śledzenia, ponieważ nie można ich zmienić, w przeciwieństwie do list, w których śledzenie błędów jest trudne.

11. Funkcje i operacje

Python ma kilka przydatnych funkcji, które można zastosować do krotek i list, takich jak sorted, sum, all, min, max, lean itp.

Jeśli chodzi o operacje, można znaleźć wiele podobieństw w listach i krotkach. Jednak listy mają pewne dodatkowe funkcje, których nie ma w krotkach. Są to głównie operacje pop i insert, wraz z usuwaniem i przechowywaniem przedmiotów.

Kluczowe dania na wynos

  • Krotki mają mniej funkcji niż listy.
  • Struktura krotki jest niezmienna, natomiast struktura list jest zmienna.
  • Krotki mają stałą długość, podczas gdy długość list może się różnić.
  • Składnia listy jest reprezentowana przez nawiasy kwadratowe „[]”, natomiast składnię krotek przedstawiono w postaci nawiasu „()”.
  • Krotki zużywają mniej pamięci w porównaniu z listami.
  • Struktura danych krotki jest najlepsza, gdy zaangażowany jest dostęp do elementów.
  • Lista funkcji jest lepsza w wykonywaniu określonych operacji usuwania i wstawiania.
  • Iteracje związane z krotkami są szybsze niż te związane z listami.
  • Lista może mieć wiele wbudowanych metod, podczas gdy krotka nie ma żadnej.

Dowiedz się szczegółowo o drobiazgach Pythona i jego zaawansowanych koncepcjach dzięki 18-miesięcznemu tytułowi Master of Science in Data Science organizowanego przez upGrad program we współpracy z Liverpool John Moores University i IIIT Bangalore. Mając do dyspozycji wiodącą w branży kadrę nauczycielską, ponad 500 godzin materiałów edukacyjnych i zajęcia z rozwiązywania wątpliwości, uczniowie mają szansę opanować Pythona i inne podstawy nauki o danych, aby odpowiednio pokierować swoją karierą. Ponadto program pomaga rozwijać kompetencje w ponad 14 językach i narzędziach, takich jak Tableau, MySQL, Excel, MongoDB i nie tylko.

Więc nie wahaj się. Skontaktuj się z nami już dziś!

Kiedy używać krotek lub list?

Jeśli chcesz, aby Twoje elementy danych były tylko do odczytu, powinieneś użyć krotek. Dane pozostają stałe w krotkach ze względu na ich gwarantowaną dostępność niezmieniających się danych.

Listy są jednak bardzo zmienne. Dlatego dane w nich zawsze można zmienić. Przenoszenie, przełączanie, usuwanie i dodawanie elementów do listy jest bardzo elastyczne. Najlepiej stosować je, gdy dane wymagają modyfikacji na późniejszych etapach cyklu programu.

Czy krotki są szybsze w porównaniu z listami?

Tak, tworzenie krotki zajmuje znacznie mniej czasu niż tworzenie listy. Gdy tworzone są listy, potrzebny jest dostęp do więcej niż jednego bloku pamięci. Dzieje się tak, ponieważ elementy w krotkach nie mogą być usuwane i zastępowane, podczas gdy cechy na listach mogą być zmieniane kilka razy w trakcie cyklu programu.

Gdzie są używane krotki i listy w prawdziwym życiu?

Można sporządzić listę do przechowywania wymaganych kroków, aby ugotować określone danie według określonego przepisu. Lista obejmuje sekwencyjny dostęp do danych. W związku z tym można uzyskać dostęp do kroków w kolejności. Z drugiej strony Krotki mogą być używane do przechowywania danych, takich jak długość lub szerokość geograficzna miejsca zamieszkania. Dzieje się tak, ponieważ krotka jest zbiorem wstępnie zdefiniowanych danych. Możesz także użyć tej samej krotki do przechowywania współrzędnych lokalizacji innych miejsc.