Python Array kontra lista: różnice i przypadki użycia
Opublikowany: 2021-11-03Python zyskał przewagę nad innymi językami w Data Science w ciągu ostatnich lat, a jego struktury danych odgrywają istotną rolę. Python ma duży zestaw struktur danych, wśród których najpopularniejsze są tablica i lista, o których będziemy dzisiaj mówić.
Tablice i listy to dwie główne struktury danych w Pythonie, które są podobne pod wieloma względami. Oba mogą być używane do przechowywania danych i umożliwiają nam ich iterację, dzielenie ich, a nawet dostęp do ich elementów za pomocą metody indeksowania. Jaka jest więc różnica między listą a tablicą w Pythonie? Cóż, to właśnie omówimy w tym artykule.
Spis treści
Tablice w Pythonie
Tablica jest ciągłą strukturą danych, która zawiera jednorodne elementy, tj. elementy należące do tego samego typu danych.
Oto główne cechy charakterystyczne tablic w Pythonie:
- Ciągły charakter tablicy umożliwia przechowywanie danych w sąsiednich lokalizacjach pamięci . Ułatwia to wykonywanie operacji na elementach tablicy.
- Tablicę w Pythonie można zadeklarować na dwa sposoby:
- Korzystanie z modułu tablicy
import tablicy # importowanie modułu 'array'
myArray = array.array('i', [10, 20, 30]) # deklaracja tablicy
# utworzona tablica: [10, 20, 30]
Uwaga: W powyższej deklaracji konieczne jest podanie kodu formatu. Tutaj „i” to kod formatu, który oznacza liczbę całkowitą.
- Korzystanie z modułu NumPy
import numpy # importowanie modułu 'numpy'
mojaTablica = numpy.array([10, 20, 30]) # deklaracja tablicy
# utworzona tablica: [10, 20, 30]
- Elementy tablicy są uporządkowane . Każdy element ma skojarzony indeks całkowity. Na przykład w arr[10, 20, 30], '10', '20' i '30' są przechowywane odpowiednio pod indeksami 0, 1 i 2 w pamięci.
Uwaga: indeksowanie tablic w Pythonie zaczyna się od 0.
- Tablica może zawierać tylko wartości tego samego typu, tj . elementy jednorodne . Na przykład,
przyp[1, 2, 3]
arr['a', 'b', 'c']
Tablica w Pythonie jest zwykle używana do przechowywania listy podobnych elementów. Jednym z rzeczywistych przypadków użycia wyświetlacza może być przechowywanie cen akcji określonych akcji przez szereg dni. Cena zamknięcia akcji pozostaje nienaruszona dla określonej akcji i dnia. Oznacza to, że przechowywanie takich szczegółów w niezmiennej strukturze danych, takiej jak tablica, ma znacznie więcej sensu.
W rzeczywistości macierze NumPy są zwykle używane do przechowywania danych z dużych zbiorów danych w nauce o danych i uczeniu maszynowym. Każda tablica NumPy odpowiada funkcji w zestawie danych.
Listy w Pythonie
Lista jest jednym z czterech wbudowanych kontenerów lub struktur danych obsługiwanych w Pythonie. Jedną z głównych zalet używania list jest to, że pojedyncza lista może zawierać wartości wielu typów danych.
Oto główne cechy wykazywane przez listy w Pythonie:
- Listy są bardziej elastyczne pod względem przechowywania danych. Mogą zawierać niejednorodne dane, czyli elementy różnego typu. Na przykład,
[1, 'cześć', ['x', 'y']]
- Listy są również uporządkowane , a do elementów przechowywanych na liście można uzyskać dostęp za pomocą ich indeksów. Ujemne indeksy mogą być użyte do uzyskania dostępu do elementu z końca listy. Na przykład.,
mojaLista = [20, 40, 'cześć', 'świat']
# drukowanie przedostatniego elementu
print(mojaLista[-2])
Wyjście
- Listy można łatwo mutować po zainicjowaniu listy. Aby zmodyfikować dowolną wartość, uzyskaj do niej dostęp za pomocą indeksu elementu.
samochody = ['Ford', 'Tesla', 'Jaguar']
samochody [2] = „BMW”
- Listy wielowymiarowe można również zaimplementować w Pythonie przy użyciu koncepcji list zagnieżdżonych. Te wielowymiarowe listy mogą być używane jako wielowymiarowe tablice w Pythonie.
mojeArr = [[1, 2], [3, 4]]
# utworzono tablicę 2-d:
# |1, 2|
# |3, 4|
Rzeczywistym przypadkiem użycia wielowymiarowej heterogenicznej listy w Pythonie może być przechowywanie zestawu szczegółów produktu, takich jak typ produktu, kategoria, cena kosztu, cena sprzedaży itp. Każda lista w takiej wielowymiarowej liście reprezentuje produkt. Ponieważ listy są zmienne, łatwiej jest zmienić szczegóły produktu, kiedy tylko chcemy.
Jeśli jesteś początkującym programistą Pythona, omówienie podstawowych różnic między tablicą a listą w Pythonie jest kluczowym aspektem. Tak więc bez zbędnych ceregieli przejdźmy od razu do opisu tabelarycznego w Python Array vs. List.
Poznaj różnicę między tablicą a listą w Pythonie
Python Array vs List : kto jest zwycięzcą?
PARAMETR | LISTA | SZYK |
Deklaracja | Listy nie muszą być deklarowane, ponieważ są wbudowane w Pythonie. lista = [ 10 , 20 , 30 ] | Aby zadeklarować tablicę , musisz zaimportować moduł tablicy lub bibliotekę NumPy . mój_arr_1 = array.array( 'i' , [ 10 , 20 , 30 ]) |
Typ danych | Pojedyncza lista może zawierać wartości należące do różnych typów danych. mojaLista = [ 40 , 'witaj' , 'm' ] | Wszystkie elementy tablicy powinny być tego samego typu danych. mojaArr = tablica.tablica(i, [ 1 , 0 , 9]) |
Rozmiar | Listę Pythona można zmieniać , ponieważ podczas inicjalizacji listy Python inicjuje dodatkowe elementy. | Tablice mają stały rozmiar, którego nie można zmienić. |
Przestrzeń/ Pamięć | Zużywa więcej miejsca i pamięci na dodawanie lub usuwanie elementów. | Przechowuje dane w bardziej zwarty sposób. |
Przechowywanie danych | Preferowany do przechowywania niewielkiej ilości danych. | Preferowany do przechowywania dużej ilości danych |
Operacje matematyczne | Nie może być używany bezpośrednio do operacji matematycznych. | Elementami tablicy można łatwo manipulować za pomocą zaawansowanych operacji matematycznych. |
Wyświetl dane | Elementy listy można wyświetlać bez pętli moja_Lista = [ 1 , “Dennis” , [ 'a' , 'b' ]] drukuj(moja_lista) | Pętla musi być wymagana do wyświetlania elementów tablicy. importuj tablicę my_Arr = array.array( 'i' , [ 1 , 2 , 3 ]) dla mnie w my_Arr: drukuj(I) |
Python Array vs List : kto jest zwycięzcą?
Jeśli czytasz ten rozdział, oznacza to, że dobrze znasz różnicę między listą a tablicą w Pythonie. Należy jednak pamiętać, kiedy w programie należy używać tablicy lub listy.
W tej sekcji omówiono różne okoliczności, w których należy wybrać najbardziej odpowiednią strukturę danych spośród tych dwóch.
Rodzaj elementów
Jeśli typ danych nie jest z góry określony, istnieje zbiór danych należących do wielu typów. Na przykład, aby przechowywać rekord uczniów posiadających jednostki takie jak nazwa (ciąg) , ID (liczba całkowita) i znaki (zmiennoprzecinkowa) , preferowanym wyborem jest lista .
Jeśli dane, które mają być przechowywane, należą do tego samego typu danych, wówczas preferowana może być tablica lub lista . Wybór będzie wówczas zależał od innych parametrów, takich jak rozmiar danych, operacje do wykonania i wykorzystanie.
Zużycie pamięci
Zużycie pamięci na listach jest większe, ponieważ podczas inicjowania listy przydzielane jest dodatkowe miejsce. Jeśli zbiór danych jest stosunkowo mniejszy, dobrym wyborem jest tutaj lista .
Źródło obrazu: webcourses@UCF
Tablice nadają się do przechowywania dużych ilości danych, ponieważ wykorzystanie pamięci przez tablice jest bardziej wydajne niż listy.
Źródło obrazu: webcourses@UCF
Obsługiwane operacje
Jeśli Twoje dane nie wymagają żadnych operacji arytmetycznych, lepszym wyborem może być lista , ponieważ obsługuje ona lepsze wbudowane funkcje do manipulacji danymi.
Z drugiej strony tablice powinny być używane, gdy trzeba wykonać operacje matematyczne. Moduł NumPy obsługuje wiele zaawansowanych operacji matematycznych, w tym operacje trygonometryczne i logarytmiczne.
Moduł do zaimportowania
Listę można zadeklarować bez importowania modułu lub biblioteki . Można ją zdefiniować tak jak zwykłą zmienną, ponieważ jest to wbudowana struktura danych w Pythonie.
Jednak tablica nie jest jednym z domyślnych kontenerów Pythona. Istnieją dwa najpopularniejsze moduły - array i NumPy . Każdy moduł zawiera kilka predefiniowanych funkcji do manipulowania i zarządzania danymi przechowywanymi w tablicy.
Wniosek
W tym artykule omówiono wszystkie tematy wymagane do wnikliwego zrozumienia różnicy między tablicą a listą w Pythonie. Omówiliśmy również różne przypadki użycia, w których odpowiednia jest lista lub tablica.
Jeśli chcesz rozpocząć swoją przygodę z Data Science, zarejestruj się w programie upGrad's Data Science kurs dzisiaj. Sprawdź bogatą kolekcję kursów na upGrad rozpocząć karierę.
Tablica w języku Python jest preferowana w stosunku do listy w różnych scenariuszach: Tablica jest szybsza niż lista w Pythonie, ponieważ wszystkie elementy przechowywane w tablicy są jednorodne, tj. mają ten sam typ danych, podczas gdy lista zawiera elementy heterogeniczne. Lista Pythona ma ogromne znaczenie w przechowywaniu danych i może być używana w wielu przypadkach:Kiedy używać tablicy zamiast listy w Pythonie?
1. Ponieważ tablica w Pythonie jest bardziej kompaktowa i zużywa mniej pamięci niż lista, preferuje się jej użycie, gdy trzeba przechowywać dużą ilość danych.
2. Nie ma potrzeby używania listy do przechowywania danych, gdy wszystkie elementy są tego samego typu i stąd tablica będzie tutaj bardziej wydajna.
3. Danymi przechowywanymi w tablicy można łatwo manipulować matematycznie, podczas gdy jest to dość niewygodne w przypadku listy. Co jest szybsze między tablicą a listą w Pythonie?
Co więcej, tablice Pythona są zaimplementowane w C, co czyni je znacznie szybszymi niż listy wbudowane w sam Python. Kiedy lista jest bardziej odpowiednia do przechowywania danych w Pythonie?
1. Gdy masz różne elementy o różnych typach danych, możesz przechowywać je na liście i uzyskiwać dostęp do tych elementów, po prostu odwołując się do ich indeksów.
2. Można również zmienić rozmiar listy. Dlatego lista jest przydatna, gdy nie masz pewności co do liczby elementów.
3. Listy są bardzo preferowane, gdy wymagane jest przechowywanie niewielkiej ilości danych, ponieważ wbudowane funkcje listy są dość wygodne do manipulowania danymi.