logo

Różnica między listą a krotką w Pythonie

Listy i krotki w Pythonie to dwie klasy struktur danych Pythona. Struktura listy jest dynamiczna i można ją łatwo zmienić, podczas gdy struktura krotki jest statyczna i nie można jej zmienić. Oznacza to, że krotka jest generalnie szybsza niż lista. Listy są oznaczane nawiasami kwadratowymi, a krotki nawiasami.

Różnice między listą a krotką w Pythonie

Sno



LISTA

KRÓTKA

1 Listy Czy zmienny Krotki są niezmienne
2Konsekwencje iteracji są czasochłonneImplikacja iteracji jest stosunkowo szybsza
3Lista lepiej nadaje się do wykonywania operacji, takich jak wstawianie i usuwanie.Typ danych Tuple jest odpowiedni do uzyskiwania dostępu do elementów
4Listy zużywają więcej pamięciKrotka zużywa mniej pamięci w porównaniu do listy
5Listy mają kilka wbudowanych metodTuple nie ma wielu wbudowanych metod.
6Większe jest prawdopodobieństwo wystąpienia nieoczekiwanych zmian i błędówPonieważ krotki się nie zmieniają, są znacznie mniej podatne na błędy.

Lista Pythona a krotka Pythona

Sprawdź, czy krotki są niezmienne, a listy są zmienne

Tutaj porównamy testy zmienności list i krotek.



Python3
# Creating a List with # the use of Numbers # code to test that tuples are mutable List = [1, 2, 4, 4, 3, 3, 3, 6, 5] print('Original list ', List) List[3] = 77 print('Example to show mutability ', List)>

Wyjście
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>

Możemy zobaczyć tutaj krotka nie można modyfikować.

Python3
# code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>

Wyjście:

unikalny klucz mysql
Traceback (most recent call last):  File 'e0eaddff843a8695575daec34506f126.py', line 3, in  tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>

Która jest lepsza lista lub krotka w Pythonie?

Aby przetestować tę odpowiedź, wykonajmy kilka operacji na krotce Pythona i liście Pythona. Dzięki temu będziemy mogli lepiej zorientować się, która lista lub krotka jest lepsza w Pythonie.



Sprawdź, czy krotki oszczędzają pamięć

Ponieważ krotki są przechowywane w jednym bloku pamięci, nie wymagają dodatkowej przestrzeni na nowe obiekty, natomiast listy są przydzielane w dwóch blokach, pierwszym stałym ze wszystkimi Pyton informacje o obiekcie, a po drugie blok danych o zmiennym rozmiarze.

Python3
import sys a_list = [] a_tuple = () a_list = ['Geeks', 'For', 'Geeks'] a_tuple = ('Geeks', 'For', 'Geeks') print(sys.getsizeof(a_list)) print(sys.getsizeof(a_tuple))>

Wyjście
96 80>

Sprawdź, czy implikacje iteracji są stosunkowo szybsze w krotkach

Ponieważ krotki są przechowywane w jednym bloku pamięci, nie wymagają dodatkowej przestrzeni dla nowych obiektów, ponieważ są niezmienne, natomiast listy są przydzielane w dwóch blokach, pierwszym stałym ze wszystkimi Pyton informacje o obiekcie, a po drugie blok danych o zmiennym rozmiarze, co czyni je jeszcze szybszymi.

Python3
# code import sys, platform import time l=list(range(100000001)) t=tuple(range(100000001)) start = time.time_ns() for i in range(len(t)): a = t[i] end = time.time_ns() print('Total lookup time for Tuple: ', end - start) start = time.time_ns() for i in range(len(l)): a = l[i] end = time.time_ns() print('Total lookup time for LIST: ', end - start)>

Wyjście

Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>

Lista zmienna a niezmienne krotki

W Pyton , zarówno listy, jak i krotki obsługują szereg operacji, w tym indeksowanie, wycinanie, łączenie i inne. Istnieją jednak pewne różnice pomiędzy operacjami dostępnymi dla list i krotek, ze względu na ich zmienność i niezmienność.

Indeksowanie Pythona

Zarówno listy, jak i krotki umożliwiają dostęp do poszczególnych elementów za pomocą ich indeksu, zaczynając od 0.

Python3
my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>

Wyjście
1 5>

Krojenie Pythona

Zarówno listy, jak i krotki umożliwiają wyodrębnienie podzbioru elementów za pomocą cięcia.

Java przerwała pętlę
Python3
my_list = [1, 2, 3, 4, 5] my_tuple = (6, 7, 8, 9, 10) print(my_list[1:3]) # Output: [2, 3] print(my_tuple[:3]) # Output: (6, 7, 8)>

Wyjście
[2, 3] (6, 7, 8)>

Konkatenacja Pythona

Zarówno listy, jak i krotki można łączyć za pomocą operatora +.

Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] tuple1 = (7, 8, 9) tuple2 = (10, 11, 12) print(list1 + list2) # Output: [1, 2, 3, 4, 5, 6] print(tuple1 + tuple2) # Output: (7, 8, 9, 10, 11, 12)>

Wyjście
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>

Notatka - Istnieją jednak pewne operacje, które są dostępne tylko dla list ze względu na ich zmienność.

Dołącz Pythona

Do list można dodawać nowe elementy za pomocą metody append().

Python3
my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>

Wyjście
[1, 2, 3, 4]>

Rozszerzenie Pythona

Listy można także rozszerzyć o inną listę za pomocą metody Extend().

jak sprawdzić rozmiar ekranu
Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>

Wyjście
[1, 2, 3, 4, 5, 6]>

Usuń Pythona

Listy można usunąć elementy za pomocą metody usuwania().

Python3
my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>

Wyjście
[1, 3, 4]>

Kiedy używać krotek zamiast list?

W Pyton Zarówno krotki, jak i listy służą do przechowywania kolekcji danych, ale istnieją między nimi pewne istotne różnice. Oto kilka sytuacji, w których możesz chcieć użyć krotek zamiast list:

Niezmienne dane Krotki są niezmienne, zatem po ich wygenerowaniu nie można zmienić ich zawartości. To sprawia, że ​​krotki są odpowiednią opcją do przechowywania informacji, które nie powinny się zmieniać, takich jak ustawienia konfiguracyjne, stałe wartości lub inne informacje, które powinny pozostać takie same podczas działania programu.

Wydajność Krotki są lżejsze niż listy i mogą być szybsze w generowaniu, uzyskiwaniu dostępu i iterowaniu, ponieważ są niezmienne. Użycie krotki może być bardziej efektywne niż użycie krotki lista jeśli masz ogromny zbiór danych, które musisz przechowywać, odzyskiwać i regularnie wykorzystywać, a dane te nie muszą być zmieniane.

Integralność danych - Zapewniając spójność struktury i zawartości danych, można zastosować krotki w celu zapewnienia integralności danych. Aby upewnić się, że wywołujący wie, ile danych może się spodziewać, na przykład w przypadku funkcji zwroty określoną liczbę wartości, możesz chcieć zwrócić je jako krotkę, a nie listę.