Python Array kontra lista: różnice i przypadki użycia

Opublikowany: 2021-11-03

Python 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ę.

Kiedy używać tablicy zamiast listy w Pythonie?

Tablica w języku Python jest preferowana w stosunku do listy w różnych scenariuszach:

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?

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.

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?

Lista Pythona ma ogromne znaczenie w przechowywaniu danych i może być używana w wielu przypadkach:

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.