Πίνακας αριθμητικών τιμών Python

Σε αυτό το σεμινάριο, θα μάθετε για τη μονάδα πίνακα Python, τη διαφορά μεταξύ συστοιχιών και λιστών και πώς και πότε να τις χρησιμοποιήσετε με τη βοήθεια παραδειγμάτων.

Σημείωση: Όταν οι άνθρωποι λένε πίνακες στο Python, πιο συχνά από ό, τι όχι, μιλούν για λίστες Python . Εάν συμβαίνει αυτό, επισκεφθείτε το σεμινάριο λίστας Python.

Σε αυτό το σεμινάριο, θα επικεντρωθούμε σε μια ενότητα που ονομάζεται array. Η arrayενότητα μας επιτρέπει να αποθηκεύσουμε μια συλλογή αριθμητικών τιμών.

Δημιουργία συστοιχιών Python

Για να δημιουργήσουμε μια σειρά αριθμητικών τιμών, πρέπει να εισαγάγουμε τη arrayλειτουργική μονάδα. Για παράδειγμα:

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

Παραγωγή

 πίνακας ('d', (1.1, 3.5, 4.5))

Εδώ, δημιουργήσαμε μια σειρά floatτύπων. Το γράμμα dείναι κωδικός τύπου. Αυτό καθορίζει τον τύπο του πίνακα κατά τη δημιουργία.

Οι κωδικοί τύπου που χρησιμοποιούνται συνήθως αναφέρονται ως εξής:

Κώδικας Τύπος Γ Τύπος Python Ελάχ. Bytes
b υπογεγραμμένο char int 1
B χωρίς υπογραφή char int 1
u Py_UNICODE Unicode 2
h υπογεγραμμένο σύντομο int 2
H χωρίς υπογραφή σύντομο int 2
i υπογεγραμμένο int int 2
I χωρίς υπογραφή int int 2
l υπέγραψε πολύ int 4
L χωρίς υπογραφή πολύ int 4
f φλοτέρ φλοτέρ 4
d διπλό φλοτέρ 8

Δεν θα συζητήσουμε διαφορετικούς τύπους C σε αυτό το άρθρο. Θα χρησιμοποιήσουμε κωδικούς δύο τύπων σε ολόκληρο το άρθρο: iγια ακέραιους και dγια πλωτήρες.

Σημείωση : Ο uκωδικός τύπου για χαρακτήρες Unicode έχει καταργηθεί από την έκδοση 3.3. Αποφύγετε τη χρήση όσο το δυνατόν περισσότερο.

Πρόσβαση στα στοιχεία Python Array

Χρησιμοποιούμε δείκτες για πρόσβαση σε στοιχεία ενός πίνακα:

 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))

Παραγωγή

 Πρώτο στοιχείο: 2 Δεύτερο στοιχείο: 4 Τελευταίο στοιχείο: 8

Σημείωση : Το ευρετήριο ξεκινά από 0 (όχι 1) παρόμοιο με τις λίστες.

Τεμαχισμός συστοιχιών Python

Μπορούμε να έχουμε πρόσβαση σε μια σειρά αντικειμένων σε έναν πίνακα χρησιμοποιώντας τον τελεστή τεμαχισμού :.

 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

Παραγωγή

 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))

Αλλαγή και προσθήκη στοιχείων

Οι πίνακες είναι μεταβλητές. τα στοιχεία τους μπορούν να αλλάξουν με παρόμοιο τρόπο όπως οι λίστες.

 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))

Παραγωγή

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

Μπορούμε να προσθέσουμε ένα στοιχείο στον πίνακα χρησιμοποιώντας τη append()μέθοδο, ή να προσθέσουμε πολλά στοιχεία χρησιμοποιώντας τη extend()μέθοδο.

 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))

Παραγωγή

 πίνακας («i», (1, 2, 3, 4)) πίνακας («i», (1, 2, 3, 4, 5, 6, 7))

Μπορούμε επίσης να συνδυάσουμε δύο συστοιχίες χρησιμοποιώντας τον +τελεστή.

 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)

Παραγωγή

 πίνακας («i», (1, 3, 5, 2, 4, 6)) 

Αφαίρεση στοιχείων Python Array

Μπορούμε να διαγράψουμε ένα ή περισσότερα στοιχεία από έναν πίνακα χρησιμοποιώντας τη δήλωση del του Python.

 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

Παραγωγή

 array ('i', (1, 2, 3, 4)) Traceback (πιο πρόσφατη τελευταία κλήση): Αρχείο "", γραμμή 9, σε εκτύπωση (αριθμός) # Σφάλμα: ο πίνακας δεν έχει οριστεί NameError: name 'number' is μη καθορισμένο

Μπορούμε να χρησιμοποιήσουμε τη remove()μέθοδο για την κατάργηση του δεδομένου στοιχείου και τη pop()μέθοδο για την κατάργηση ενός στοιχείου στο δεδομένο ευρετήριο.

 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))

Παραγωγή

 πίνακας («i», (10, 11, 12, 13)) 12 array («i», (10, 11, 13))

Ελέγξτε αυτήν τη σελίδα για να μάθετε περισσότερα σχετικά με τις μεθόδους συστοιχιών και συστοιχιών Python.

Η Python απαριθμεί τις συστοιχίες

Στην Python, μπορούμε να αντιμετωπίσουμε τις λίστες ως πίνακες. Ωστόσο, δεν μπορούμε να περιορίσουμε τον τύπο των στοιχείων που είναι αποθηκευμένα σε μια λίστα. Για παράδειγμα:

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

Εάν δημιουργείτε πίνακες χρησιμοποιώντας τη arrayμονάδα, όλα τα στοιχεία του πίνακα πρέπει να είναι του ίδιου αριθμητικού τύπου.

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

Παραγωγή

 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.

Εκτός αν δεν χρειάζεστε πραγματικά πίνακες (μπορεί να χρειαστεί λειτουργική μονάδα για διασύνδεση με κωδικό C), δεν συνιστάται η χρήση της μονάδας πίνακα.

ενδιαφέροντα άρθρα...