Tablica wartości liczbowych w Pythonie

W tym samouczku dowiesz się o module tablicowym w języku Python, różnicach między tablicami i listami oraz jak i kiedy ich używać, korzystając z przykładów.

Uwaga: Kiedy ludzie mówią tablice w Pythonie, częściej niż nie, mówią o listach Pythona . W takim przypadku odwiedź samouczek dotyczący listy Pythona.

W tym samouczku skupimy się na module o nazwie array. arrayModuł pozwala nam przechowywać zbiór wartości liczbowych.

Tworzenie tablic w języku Python

Aby stworzyć tablicę wartości liczbowych, musimy zaimportować arraymoduł. Na przykład:

 import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)

Wynik

 tablica ('d', (1,1; 3,5; 4,5))

Tutaj stworzyliśmy tablicę floattypów. Litera djest kodem typu. Określa typ tablicy podczas tworzenia.

Powszechnie używane kody typów są wymienione w następujący sposób:

Kod Typ C. Typ Pythona Min bajtów
b podpisany char int 1
B unsigned char int 1
u Py_UNICODE Unicode 2
h podpisał krótko int 2
H unsigned short int 2
i podpisany int int 2
I unsigned int int 2
l podpisany długo int 4
L unsigned long int 4
f pływak pływak 4
d podwójnie pływak 8

W tym artykule nie będziemy omawiać różnych typów języka C. W całym artykule będziemy używać dwóch kodów typów: idla liczb całkowitych i ddla liczb zmiennoprzecinkowych.

Uwaga : ukod typu znaków Unicode jest nieaktualny od wersji 3.3. Unikaj używania jak najwięcej.

Dostęp do elementów tablicy w języku Python

Używamy indeksów, aby uzyskać dostęp do elementów tablicy:

 import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))

Wynik

 Pierwszy element: 2 Drugi element: 4 Ostatni element: 8

Uwaga : Indeks zaczyna się od 0 (nie 1), podobnie jak listy.

Cięcie tablic Pythona na plasterki

Możemy uzyskać dostęp do szeregu elementów w tablicy za pomocą operatora slicing :.

 import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end

Wynik

 tablica ('i', (62, 5, 42)) tablica ('i', (2, 5, 62)) tablica ('i', (52, 48, 5)) tablica ('i', (2 , 5, 62, 5, 42, 52, 48, 5))

Zmiana i dodawanie elementów

Tablice są zmienne; ich elementy można zmieniać w podobny sposób jak listy.

 import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))

Wynik

 tablica ('i', (0, 2, 3, 5, 7, 10)) tablica ('i', (0, 2, 4, 6, 8, 10))

Możemy dodać jedną pozycję do tablicy za pomocą append()metody lub dodać kilka pozycji za pomocą extend()metody.

 import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))

Wynik

 tablica ('i', (1, 2, 3, 4)) tablica ('i', (1, 2, 3, 4, 5, 6, 7))

Możemy również połączyć dwie tablice za pomocą +operatora.

 import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)

Wynik

 tablica ('i', (1, 3, 5, 2, 4, 6)) 

Usuwanie elementów tablicy Pythona

Możemy usunąć jeden lub więcej elementów z tablicy za pomocą instrukcji del Pythona.

 import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined

Wynik

 array ('i', (1, 2, 3, 4)) Traceback (ostatnie wywołanie ostatnie): Plik "", wiersz 9, w print (numer) # Błąd: tablica nie jest zdefiniowana NameError: name 'number' is Nie określono

Możemy użyć remove()metody do usunięcia danej pozycji, a pop()metody do usunięcia pozycji o podanym indeksie.

 import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))

Wynik

 tablica ('i', (10, 11, 12, 13)) 12 tablica ('i', (10, 11, 13))

Sprawdź tę stronę, aby dowiedzieć się więcej o tablicach i metodach tablicowych w języku Python.

Python wyświetla listę tablic Vs

W Pythonie możemy traktować listy jako tablice. Nie możemy jednak ograniczyć typu elementów przechowywanych na liście. Na przykład:

 # elements of different types a = (1, 3.5, "Hello") 

Jeśli tworzysz tablice za pomocą arraymodułu, wszystkie elementy tablicy muszą być tego samego typu liczbowego.

 import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))

Wynik

 Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str

When to use arrays?

Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.

So, what are the uses of arrays created from the Python array module?

The array.array type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.

O ile naprawdę nie potrzebujesz tablic (może być potrzebny moduł tablicowy do połączenia z kodem C), użycie modułu tablicy nie jest zalecane.

Interesujące artykuły...