In diesem Tutorial lernen Sie anhand von Beispielen das Python-Array-Modul, den Unterschied zwischen Arrays und Listen sowie deren Verwendung und Verwendung kennen.
Hinweis: Wenn Leute in Python Arrays sagen, sprechen sie meistens über Python-Listen . Wenn dies der Fall ist, besuchen Sie das Tutorial zur Python-Liste.
In diesem Tutorial konzentrieren wir uns auf ein Modul mit dem Namen array
. Mit dem array
Modul können wir eine Sammlung numerischer Werte speichern.
Python-Arrays erstellen
Um ein Array numerischer Werte zu erstellen, müssen wir das array
Modul importieren . Beispielsweise:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Ausgabe
Array ('d', (1.1, 3.5, 4.5))
Hier haben wir ein Array vom float
Typ erstellt. Der Buchstabe d
ist ein Typcode. Dies bestimmt den Typ des Arrays während der Erstellung.
Häufig verwendete Typcodes sind wie folgt aufgeführt:
Code | C Typ | Python-Typ | Min Bytes |
---|---|---|---|
b | signierter char | int | 1 |
B | vorzeichenloser char | int | 1 |
u | Py_UNICODE | Unicode | 2 |
h | kurz signiert | int | 2 |
H | unsigned short | int | 2 |
i | signiert int | int | 2 |
I | unsigned int | int | 2 |
l | lange unterschrieben | int | 4 |
L | lange nicht signiert | int | 4 |
f | schweben | schweben | 4 |
d | doppelt | schweben | 8 |
Wir werden in diesem Artikel nicht auf verschiedene C-Typen eingehen. In diesem gesamten Artikel werden zwei Typcodes verwendet: i
für Ganzzahlen und d
für Gleitkommazahlen.
Hinweis : Der u
Typcode für Unicode-Zeichen ist seit Version 3.3 veraltet. Vermeiden Sie es, so viel wie möglich zu verwenden.
Zugriff auf Python-Array-Elemente
Wir verwenden Indizes, um auf Elemente eines Arrays zuzugreifen:
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))
Ausgabe
Erstes Element: 2 Zweites Element: 4 Letztes Element: 8
Hinweis : Der Index beginnt ähnlich wie Listen bei 0 (nicht 1).
Python-Arrays schneiden
Mit dem Slicing-Operator können wir auf eine Reihe von Elementen in einem Array zugreifen :
.
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
Ausgabe
Array ('i', (62, 5, 42)) Array ('i', (2, 5, 62)) Array ('i', (52, 48, 5)) Array ('i', (2) 5, 62, 5, 42, 52, 48, 5))
Elemente ändern und hinzufügen
Arrays sind veränderlich; Ihre Elemente können auf ähnliche Weise wie Listen geändert werden.
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))
Ausgabe
Array ('i', (0, 2, 3, 5, 7, 10)) Array ('i', (0, 2, 4, 6, 8, 10))
Mit der append()
Methode können wir dem Array ein Element hinzufügen oder mit der extend()
Methode mehrere Elemente hinzufügen .
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))
Ausgabe
Array ('i', (1, 2, 3, 4)) Array ('i', (1, 2, 3, 4, 5, 6, 7))
Wir können auch zwei Arrays mit dem +
Operator verketten .
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)
Ausgabe
Array ('i', (1, 3, 5, 2, 4, 6))
Python-Array-Elemente entfernen
Wir können ein oder mehrere Elemente mit der del-Anweisung von Python aus einem Array löschen.
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
Ausgabe
Array ('i', (1, 2, 3, 4)) Traceback (letzter Aufruf zuletzt): Datei "", Zeile 9, im Druck (Nummer) # Fehler: Array ist nicht definiert NameError: Name 'Nummer' ist nicht definiert
Wir können die remove()
Methode verwenden, um das angegebene Element zu entfernen, und die pop()
Methode, um ein Element am angegebenen Index zu entfernen.
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))
Ausgabe
Array ('i', (10, 11, 12, 13)) 12 Array ('i', (10, 11, 13))
Auf dieser Seite erfahren Sie mehr über Python-Arrays und Array-Methoden.
Python listet Vs Arrays auf
In Python können wir Listen als Arrays behandeln. Wir können jedoch den Typ der in einer Liste gespeicherten Elemente nicht einschränken. Beispielsweise:
# elements of different types a = (1, 3.5, "Hello")
Wenn Sie mit dem array
Modul Arrays erstellen , müssen alle Elemente des Arrays vom gleichen numerischen Typ sein.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Ausgabe
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.
Sofern Sie keine Arrays wirklich benötigen (Array-Modul wird möglicherweise für die Schnittstelle mit C-Code benötigt), wird die Verwendung des Array-Moduls nicht empfohlen.